c语言使用指定字符串替换特定的子串
前言
当前程序是在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语言使用指定字符串替换特定的子串相关推荐
- c语言实现文档中字符串的替换,C语言 16行代码实现字符串中指定字符串替换
支持: 1.等长字符串替换函数 2.长字符串替换为短字符串post 3.短字符串替换为长字符串测试 4.中文替换spa 注意:短字符串替换成长字符串要注意内存越界.net 函数代码 /* 功 能:将s ...
- C语言笔记——“特定字符串替换特定字符串”
题目:字符串替换,三个参数字符串A.B.C,用字符串C来替换在字符串A中的B 首先,我们先来分析一下题目中所要实现的程序的功能:我们要获取三个字符串,A是原始的字符串,B是要查找的内容,C是给定的要替 ...
- JS 字符串替换特定子串
JS 字符串替换函数-replace 前言 基本说明 定义与语法 返回值 说明 拓展说明1 java中的字符替换操作 JS实现全替换的效果 拓展说明2 replacement 是字符串时 replac ...
- c语言字符串替换问题,C语言中的字符串替换
输入参数:char* search 需要搜索的字符串 char* replace 被替换的字符串 char* str 原始字符串 返回 char* 用完后用free()释放 [codesyntax l ...
- java实现将指定字符串替换为制定长度的空格
package try1;import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public cl ...
- C语言 | 从指定字符串中删除指定字符
/* **删除字符串内的空格 */#include<stdio.h> #include<string.h>//遍历元字符串,删除空格 char *func(char *str) ...
- c语言动态规划公共字符串,最长公共子串 C语言 动态规划
给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列. 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何 ...
- c语言字符串替换有大小写,(C语言)字符串大小写无关查找替换
[问题描述] 编写程序将一行英文中指定的字符串替换为另一字符串后输出.注意:查找指定字符串时,大小写无关,而且有可能多次出现. [输入形式] 先从标准输入中分行输入两个英文字符串(每个字符串不为空,长 ...
- linux替换指定字符串函数,C语言实现字符串替换函数
C语言中没有提供字符串替换函数,网上能找到的类似函数也只是能替换一个,不能替换全部,工作中却常常要用到这个功能,故实现一个函数.该函数所使用到的相关函数均是自己实现,没有调用库函数. 相关代码如下: ...
最新文章
- 经常使用的android弹出对话框
- python扫描端口脚本_Pyhton扫描端口脚本代码
- rstudio 关联r_使用关联规则提出建议(R编程)
- 私域经济运营能力最关键的三个指标
- echarts 柱状图点击事件
- 她玩游戏好都不准我玩游戏了_我们可以玩游戏吗?
- JAVA 实现《warcraft java版》游戏
- 工程力学和计算机专业,2018工程力学专业就业方向及就业前景分析
- python 自动发邮件模块抄送_Python实现自动发送邮件
- 新型冠状病毒SIR预测模型,MATLAB代码
- eBPF 完全入门指南.pdf(万字长文)
- 避免幻读 : next-key锁与MVCC
- 1.win7与Ubuntu文件共享工具-Samba安装及使用方法
- 黑马程序员——Java的代理模式
- 做好社群营销的4点策略
- 电商类-仿美团页面demo
- yolov5训练结果解析
- Mysql中查询连续一段时间内统计数据
- 用c语言编程阿姆斯特朗数,C语言水仙花数,阿姆斯特朗数
- 华为招聘Java程序员笔试试卷(一)
热门文章
- Not injecting HSTS header since it did not match the requestMatcher HSTS设置问题解决
- 2022-2028年中国科技馆行业研究及前瞻分析报告
- 【Sql Server】DateBase-自动化
- pykafka连接重要使用pykafka,kafka-python的api开发kafka生产者和消费者
- Jupyter Magic - Timing(%%time %time %timeit)
- logging.basicConfig函数
- WebRTC框架中的硬件加速
- Python分析离散心率信号(上)
- 基本数据类型转换规则
- DCN-cs6200 ipv6 6to4隧道