当前位置: 首页 > news >正文

【PTA数据结构 | C语言版】字符串替换算法

本专栏持续输出数据结构题目集,欢迎订阅。

文章目录

    • 题目
    • 代码

题目

请编写程序,将给定主串 s 中的子串 sub_s 替换成另一个给定字符串 t,再输出替换后的主串 s。

输入格式:
输入给出 3 个非空字符串,依次为:主串 s、主串中待替换的子串 sub_s、将要替换掉 sub_s 的字符串 t。每个字符串占一行,长度不超过 1000 个字符,以回车结束(回车不算在字符串内)。
题目保证替换后的主串长度仍然不超过 1000 个字符。

输出格式:
在一行中输出替换后的主串 s。

输入样例 1:
This is a simple test.
is
at

输出样例 1:
That at a simple test.

输入样例 2:
This is a test.
simple
what

输出样例 2:
This is a test.

代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int replace_sub_str(const char *str, const char *substr, const char *repstr, char *result) {const char *p = str;char *t = result;int count = 0;size_t sub_len = strlen(substr);size_t rep_len = strlen(repstr);while (*p) {if (strncmp(p, substr, sub_len) == 0) {count++;memcpy(t, repstr, rep_len);t += rep_len;p += sub_len;} else {*t++ = *p++;}}*t = '\0';return count;
}int main() {char s[10001] = {0};char sub_s[10001] = {0};char t[10001] = {0};// 读取输入字符串fgets(s, sizeof(s), stdin);s[strcspn(s, "\n")] = 0;  // 移除换行符fgets(sub_s, sizeof(sub_s), stdin);sub_s[strcspn(sub_s, "\n")] = 0;fgets(t, sizeof(t), stdin);t[strcspn(t, "\n")] = 0;char result[1001] = {0};int num = replace_sub_str(s, sub_s, t, result);printf("%s\n", result);return 0;
}
http://www.dtcms.com/a/278677.html

相关文章:

  • mitt全局通信
  • Boost.Asio 异步写:为什么多次 async_write_some 会导致乱序,以及如何解决
  • Angular 框架下 AI 驱动的企业级大前端应用开
  • 2025/7/14——java学习总结
  • Ubuntu安装Mongodb
  • 《甘肃棒球》国家级运动健将标准·棒球1号位
  • 九、官方人格提示词汇总(下)
  • OpenCV 视频处理与摄像头操作详解
  • 面试题--xxl-job分布式任务调度
  • 全面解析WOFOST与PCSE农作物生长模型;农作物生长和产量预测
  • 基于esp32系列的开源无线dap-link项目使用介绍
  • 空间智能-李飞飞团队工作总结(至2025.07)
  • 【工具】AndroidStudio修改中文语言汉化
  • Python数据容器-通用功能
  • 九、官方人格提示词汇总(中-1)
  • Usage of standard library is restricted (arkts-limited-stdlib) <ArkTSCheck>
  • 【leetcode】231. 2的幂
  • 13.7 Meta LLaMA2-Chat核心技术突破:三重强化学习实现91.4%安全评分,超越ChatGPT的对话模型架构全解析
  • React 第六十九节 Router中renderMatches的使用详解及注意事项
  • 文档处理控件Aspose.Words教程:从 C# 中的 Word 文档中提取页面
  • 汽车工件工艺追溯管理系统软件设计(草稿)
  • 我的Qt八股文面试笔记1:信号与槽文件流操作
  • 持续优化小程序排名,稳定获取搜索流量
  • 【世纪龙科技】迈腾B8汽车整车检测与诊断仿真实训系统
  • vue中配置Eslint的步骤
  • 【世纪龙科技】汽车整车检测与诊断仿真实训系统-迈腾B8
  • Redis随笔
  • 算法学习笔记:21.动态规划——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • Qt小组件 - 2(布局)瀑布流布局,GridLayout,FlowLayout
  • QT跨平台应用程序开发框架(7)—— 常用输入类控件