您的位置:首页 > 其它

替换空格_把字符串里面的空格替换成%20

2013-07-22 17:02 183 查看
#include<iostream>
#include<iomanip>
#include<list>
#include<cmath>
#include<vector>
#include<assert.h>
#include"Test.h"

void replace(char *s)  // 先计算空格总数,然后从后面开始替换,可以计算出空格后面字符的偏移量
{
assert(s!=NULL);
int len =strlen(s);
int i,j;
int x;
for(i=0,x=0;i<len;i++) // 统计空格总数
{
if(s[i]==' ')
x++;
}
int spaceCount=0;
j=len;
for(i=len-1;i>=0;i--)
{
if(s[i]==' ')
{
spaceCount++;
int shift=(x-spaceCount+1)*2;       // 计算偏移量
memcpy(&s[i+1+shift],&s[i+1],j-i-1);// 要移动的位置实际是(i,j)下标之间的位置。
memcpy(&s[i+shift-2],"%20",3);
j=i;                     //
}
}
}
void Test()
{
char s[100]="  We are  hap py ";
replace(s);
cout<<s<<endl;
}
void main()
{
Test();
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐