把字符串中的空格替换为%20
这个需要注意的是字符串的结尾最后⼀个字符为'\0',并不是空字符,复制时要⼀块复制,算法思想就是先计算出字符串中总的空格数,然后
重新计算字符串的长度,由于"%20"为3个字符,⽐原来多2个,所以,字符串长度是原来字符串长度加上空格字符总数×2,就是新的字符串的长度。
代码如下:
#include <iostream>
#include <cstdlib>
using namespace std;
字符串长度算不算空格
void  strReplace(char str[],int length)
{
if(str==NULL||length<0)
exit(-1);
int blank=0;
int nLength;
for(int i=0;i<length;i++)
{
if(str[i]==' ')
blank++;
}
nLength=length+blank*2;
for(int j=length;j>=0;j--)
{
if(str[j]!=' ')
{
str[nLength]=str[j];
nLength--;
}
else
{
str[nLength--]='0';
str[nLength--]='2';
str[nLength--]='%';
}
}
}
int main()
{
char str[13]="we are happy";
int length=13;
cout<<"before replace:  ";
cout<<str<<endl;
strReplace(str,13);
cout<<"after replace:  ";
cout<<str<<endl;
return 0;
}
运⾏结果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。