前言

当前程序是在linux环境下执行的

代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>#define MAX_UTF8_RES_LEN 1024int replace_all(char* str, size_t strLen, const char* d, const char* s)
{char* pos = 0;char* prv = 0;char temp[MAX_UTF8_RES_LEN];memset(temp, 0, MAX_UTF8_RES_LEN);if(str == NULL || d == NULL || s == NULL){printf("Init error\n");}*temp = 0;prv = str;pos = strstr(str, d);while (pos) {strncat(temp, prv, pos - prv);pos += strlen(d);prv = pos;pos = strstr(prv, d);strncat(temp, s, MAX_UTF8_RES_LEN - 1 - strlen(temp));}if (prv != str + strlen(str)) {strncat(temp, prv, MAX_UTF8_RES_LEN - 1 - strlen(temp));}if (strlen(temp) > strLen) {printf("Overflow!\n");return -1;}strncpy(str, temp, MAX_UTF8_RES_LEN - 1);str[MAX_UTF8_RES_LEN - 1] = '\0';return 0;
}int
main(int argc, char* argv[])
{char * line = NULL;size_t len = 0;ssize_t read_len;while ((read_len=getline(&line, &len, stdin)) != -1) {if (read_len > 0 && line[read_len-1] == '\n'){ line[read_len-1] = '\0';read_len -= 1;  }int b = replace_all(line, MAX_UTF8_RES_LEN, "888", "999");printf("b is %d\n", b);printf("new is %s\n", line);}return 0;
}

编译

gcc demo.cc -g -o demo

运行

echo "hello 888 asdfa 888888fa889sdfa" | ./demo 

结果

b is 0
new is hello 999 asdfa 999999fa889sdfa

c语言使用指定字符串替换特定的子串相关推荐

  1. c语言实现文档中字符串的替换,C语言 16行代码实现字符串中指定字符串替换

    支持: 1.等长字符串替换函数 2.长字符串替换为短字符串post 3.短字符串替换为长字符串测试 4.中文替换spa 注意:短字符串替换成长字符串要注意内存越界.net 函数代码 /* 功 能:将s ...

  2. C语言笔记——“特定字符串替换特定字符串”

    题目:字符串替换,三个参数字符串A.B.C,用字符串C来替换在字符串A中的B 首先,我们先来分析一下题目中所要实现的程序的功能:我们要获取三个字符串,A是原始的字符串,B是要查找的内容,C是给定的要替 ...

  3. JS 字符串替换特定子串

    JS 字符串替换函数-replace 前言 基本说明 定义与语法 返回值 说明 拓展说明1 java中的字符替换操作 JS实现全替换的效果 拓展说明2 replacement 是字符串时 replac ...

  4. c语言字符串替换问题,C语言中的字符串替换

    输入参数:char* search 需要搜索的字符串 char* replace 被替换的字符串 char* str 原始字符串 返回 char* 用完后用free()释放 [codesyntax l ...

  5. java实现将指定字符串替换为制定长度的空格

    package try1;import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public cl ...

  6. C语言 | 从指定字符串中删除指定字符

    /* **删除字符串内的空格 */#include<stdio.h> #include<string.h>//遍历元字符串,删除空格 char *func(char *str) ...

  7. c语言动态规划公共字符串,最长公共子串 C语言 动态规划

    给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列. 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何 ...

  8. c语言字符串替换有大小写,(C语言)字符串大小写无关查找替换

    [问题描述] 编写程序将一行英文中指定的字符串替换为另一字符串后输出.注意:查找指定字符串时,大小写无关,而且有可能多次出现. [输入形式] 先从标准输入中分行输入两个英文字符串(每个字符串不为空,长 ...

  9. linux替换指定字符串函数,C语言实现字符串替换函数

    C语言中没有提供字符串替换函数,网上能找到的类似函数也只是能替换一个,不能替换全部,工作中却常常要用到这个功能,故实现一个函数.该函数所使用到的相关函数均是自己实现,没有调用库函数. 相关代码如下: ...

最新文章

  1. 经常使用的android弹出对话框
  2. python扫描端口脚本_Pyhton扫描端口脚本代码
  3. rstudio 关联r_使用关联规则提出建议(R编程)
  4. 私域经济运营能力最关键的三个指标
  5. echarts 柱状图点击事件
  6. 她玩游戏好都不准我玩游戏了_我们可以玩游戏吗?
  7. JAVA 实现《warcraft java版》游戏
  8. 工程力学和计算机专业,2018工程力学专业就业方向及就业前景分析
  9. python 自动发邮件模块抄送_Python实现自动发送邮件
  10. 新型冠状病毒SIR预测模型,MATLAB代码
  11. eBPF 完全入门指南.pdf(万字长文)
  12. 避免幻读 : next-key锁与MVCC
  13. 1.win7与Ubuntu文件共享工具-Samba安装及使用方法
  14. 黑马程序员——Java的代理模式
  15. 做好社群营销的4点策略
  16. 电商类-仿美团页面demo
  17. yolov5训练结果解析
  18. Mysql中查询连续一段时间内统计数据
  19. 用c语言编程阿姆斯特朗数,C语言水仙花数,阿姆斯特朗数
  20. 华为招聘Java程序员笔试试卷(一)

热门文章

  1. Not injecting HSTS header since it did not match the requestMatcher HSTS设置问题解决
  2. 2022-2028年中国科技馆行业研究及前瞻分析报告
  3. 【Sql Server】DateBase-自动化
  4. pykafka连接重要使用pykafka,kafka-python的api开发kafka生产者和消费者
  5. Jupyter Magic - Timing(%%time %time %timeit)
  6. logging.basicConfig函数
  7. WebRTC框架中的硬件加速
  8. Python分析离散心率信号(上)
  9. 基本数据类型转换规则
  10. DCN-cs6200 ipv6 6to4隧道