当前位置: 编程技术>c/c++/嵌入式
C++实现将一个字符串中的字符替换成另一个字符串的方法
来源: 互联网 发布时间:2014-10-29
本文导语: 本文实例讲述了C++实现将一个字符串中的字符替换成另一个字符串的方法,分享给大家供大家参考。具体方法如下: 题目要求: 原地实现字符串中的每个空格替换成"%20",例如输入"We are happy", 输出"We%20are%20happy" 被替换的字...
本文实例讲述了C++实现将一个字符串中的字符替换成另一个字符串的方法,分享给大家供大家参考。具体方法如下:
题目要求:
原地实现字符串中的每个空格替换成"%20",例如输入"We are happy", 输出"We%20are%20happy"
被替换的字符串当然不仅仅是空格,上面只是个例子
这是道很好的题目,也是百度面试中的一道题,题目不难,但是问题得考虑全面。这里给出如下实现代码:
#include #include #include using namespace std; int findNumberFirst(const char *str, const char *dest, vector& pvec) { if (str == NULL || dest == NULL) return 0; int pos = 0; int lenStr = strlen(str); int lenDest = strlen(dest); if (lenStr < lenDest) return 0; int count = 0; while (pos destLen) { int count = findNumberFirst(str, src, pvec); if (count = 0 && posBefore < strLen) { if (count > 0 && pvec[i] == posBefore) { strncpy(str + posAfter, dest, strlen(dest)); posAfter += destLen; count--; posBefore += srcLen; i++; } else { str[posAfter++] = str[posBefore++]; } } str[posAfter] = ''; } } void main() { char *str = new char[100]; if (str == NULL) return; memset(str, '', 100); const char *src = " "; const char *dest = "%20"; //case1: 只有1个空格 strcpy(str, " "); replaceArray(str, src, dest); cout