#include#include #include #include
#include #include #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 =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< <