字符串匹配及替换 C实现
来源:互联网 发布:手机号正则表达式js 编辑:程序博客网 时间:2024/05/16 15:10
(1)完成普通的子串查找及替换
(2)当目标串已经包括替换子串时,不进行替换。 例如:"12345jkgkfdjgl;f123kdaj;fj" 将"123"替换为 "12345" 则第一个匹配子串不动。
(3)可以完成目标串替换为包含子串。 例如:"12345jkgkfdjgl;f123kdaj;fj" 将"123"替换为 "12" 。
// 参数INPUT:// in 需要查找的源字符串// out 存放最后结果的字符串// outlen 结果字符串最大尺寸// src 要查找的子字符串// dst 替换的目标字符串// 参数OUTPUT:// ret 返回结果 // <0 错误;// >0 成功替换次数int strckrpl(char *in, char *out, int outlen, const char *src, char *dst){ char *p = in; unsigned int len = outlen - 1; int ret = 0; int srclen = 0; int dstlen = 0; // 这几段检查参数合法性 if((NULL == src) || (NULL == dst) || (NULL == in) || (NULL == out)) { ret = -1; } else if((strcmp(in, "") == 0) || (strcmp(src, "") == 0)) { ret = -2; } else if(outlen <= 0) { ret = -3; } else { srclen = strlen(src); dstlen = strlen(dst); while((*p != '\0') && (len > 0)) { if(strncmp(p, src, srclen) != 0 ) { int n = strlen(out); out[n] = *p; out[n + 1] = '\0'; p++; len--; } else { strcat(out, dst); len -= dstlen; if( strncmp(p,dst,dstlen) != 0 || dstlen < srclen) { p += srclen; ret++; } else { printf("find the dst string\n"); p += dstlen; } } } } return ret;}
0 0
- 字符串匹配及替换 C实现
- C/C++字符串匹配和替换
- KMP字符串匹配算法及C语言实现
- C语言实现字符串替换
- C语言实现字符串替换
- linux c 实现字符串替换
- 正则表达式(regex)及C语言实现,超强查找/匹配/替换算法
- kmp字符串匹配C实现
- 实现字符串的反转及替换
- 如何实现字符串的反转及替换?
- 如何实现字符串的反转及替换?
- 实现字符串的反转及替换
- 用C语言实现字符串替换功能
- 用C语言实现字符串替换功能
- c语言实现字符串字串的替换
- C语言实现字符串替换函数
- C语言实现字符串替换函数
- KMP字符串模式匹配的C实现
- 【IO流】IO框架
- 亮灯问题
- Qt精美控件
- C++拷贝构造函数详解
- k均值聚类算法
- 字符串匹配及替换 C实现
- 字符编码相关概念理解
- 【图像处理】图像显著性论文—Frequency-tuned Salient Region Detection
- 点击其他程序中的按钮
- 玩转Xcode之修改系统生成的注释模板
- java中的反射机制对属性和方法的操作
- 网络入门视频教程
- Spark集群三种部署模式的区别
- 收集博客