题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
#include <iostream>
using namespace std;
void replaceSpace(char* str)
{
char strtemp[256] = { 0 }; //另外开辟一段空间保存新的字符串
char* p1 = str;
char* p2 = strtemp;
while (*p1 != '\0')
{
if (*p1 != ' ')
{
*p2++ = *p1++;
}
else //遇到空格时替换
{
p1++;
*p2++ = '%';
*p2++ = '2';
*p2++ = '0';
}
}
//指针重新指向头部,然后将新字符串赋给原字符串
p1 = str;
p2 = strtemp;
while (*p2 != '\0')
{
*p1++ = *p2++;
}
*p1 = '\0'; //!!一定要记得最后将字符串末尾置0
}
int main()
{
char str[256] = { 0 };
while (true)
{
cin.getline(str, 256);
cout << "替换前字符串:" << str << endl;
replaceSpace(str);
cout << "替换后字符串:" << str << endl;
}
system("pause");
}
测试:
aaa bbb c sdgsaga ds fas
替换前字符串:aaa bbb c sdgsaga ds fas
替换后字符串:aaa%20bbb%20c%20sdgsaga%20%20ds%20fas
替换前字符串:
替换后字符串:%20%20
替换前字符串:
替换后字符串:%20
a a a a a
替换前字符串:a a a a a
替换后字符串:a%20a%20a%20a%20a%20
ccc
替换前字符串:ccc
替换后字符串:ccc%20