当前位置: 编程技术>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