C++字符串高效查找替换
2012-09-30 19:31
162 查看
C++字符串高效查找替换
2012-03-09 13:25:40
标签:C++ 字符串 休闲 高效 查找替换
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zouhui.blog.51cto.com/3827922/801333
在最近的一个项目中,需要实现几万字符的查找替换,我使用CString的Replace花了两个小时,才完成替换。使用stl的string,花了大概6分钟。
万般无赖,使用char*,自己实现查找替换吧,在1秒以内完成了替换。参考了网上的代码。
直接上代码吧。
本文出自 “邹辉” 博客,请务必保留此出处http://zouhui.blog.51cto.com/3827922/801333
2012-03-09 13:25:40
标签:C++ 字符串 休闲 高效 查找替换
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zouhui.blog.51cto.com/3827922/801333
在最近的一个项目中,需要实现几万字符的查找替换,我使用CString的Replace花了两个小时,才完成替换。使用stl的string,花了大概6分钟。
万般无赖,使用char*,自己实现查找替换吧,在1秒以内完成了替换。参考了网上的代码。
直接上代码吧。
void CWebTransfer::Substitute(char *pInput, char *pOutput, char *pSrc, char *pDst) { char *pi, *po, *p; int nSrcLen, nDstLen, nLen; // 指向输入字符串的游动指针. pi = pInput; // 指向输出字符串的游动指针. po = pOutput; // 计算被替换串和替换串的长度. nSrcLen = strlen(pSrc); nDstLen = strlen(pDst); // 查找pi指向字符串中第一次出现替换串的位置,并返回指针(找不到则返回null). p = strstr(pi, pSrc); if(p) { // 找到. while(p) { // 计算被替换串前边字符串的长度. nLen = (int)(p - pi); // 复制到输出字符串. memcpy(po, pi, nLen); memcpy(po + nLen, pDst, nDstLen); // 跳过被替换串. ppi = p + nSrcLen; // 调整指向输出串的指针位置. popo = po + nLen + nDstLen; // 继续查找. p = strstr(pi, pSrc); } // 复制剩余字符串. strcpy(po, pi); } else { // 没有找到则原样复制. strcpy(po, pi); } }
本文出自 “邹辉” 博客,请务必保留此出处http://zouhui.blog.51cto.com/3827922/801333
相关文章推荐
- C++字符串高效查找替换
- C++字符串高效查找替换,有空分析分析
- C++字符串高效查找替换
- C++字符串中查找子字符串并替换
- python︱flashtext高效字符串查找与替换
- C++字符串查找和替换
- c++ stl Editor自定义类 对字符串 查找 替换 删除 插入
- [C/C++]_[初级]_[标准库之几种算法库函数的运用,如字符串查找(字符个数查找)、分隔、删除、替换、排序、字符交换位置、大小写转换等等]
- C++字符串查找和替换
- vs2013 c++ 编程CString字符串查找替换后变乱码的原因及解决方法
- C++ 字符串的查找,替换和子串
- python字符串之查找与替换
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- php正则字符串查找替换
- string替换所有指定字符串(C++)
- 查找和替换指定目录下所有文件中字符串(use sed and grep)
- vim查找/替换字符串【转】
- python使用re进行字符串查找和替换
- linux shell 字符串操作(长度,查找,替换)详解 【备忘 】
- Python 字符串(三)-字符串操作实例(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)