请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
#include <iostream>
using namespace std;
//替代字符串里的空格
void replaceSpace(char *str, int length)
{
int blankCount=0;
int oLen=0,nLen=0;
while(str[oLen]!='\0')
{
if(str[oLen] == ' ')
{
blankCount++;
}
oLen++;
}
nLen = oLen + 2*blankCount;
if(nLen>length)
return;
while(oLen>=0&&nLen>=0)
{
if(str[oLen]==' ')
{
str[nLen--]='0';
str[nLen--]='2';
str[nLen--]='%';
}
else
{
str[nLen--]=str[oLen];
}
oLen--;
}
}
int main()
{
char str[100]={"We are happy today!"};
cout<<"Before replace: "<<str<<endl;
replaceSpace(str, 50);
cout<<"After replace: "<<str<<endl;
return 0;
}
具体思路可阅读以下文章: