下面是我的程序:
char replaceblank(char *s) {
char *ret = s;
char *rett = s;
int oldsize = 0;
int newsize = 0;
while (*ret!= '\0')
{
++oldsize;
if (*ret = ' ') {
newsize += 2;
}
else {
++newsize;
}
ret++;
}
printf("%d\n", oldsize);
printf("%d\n", newsize);
int indexofold = oldsize;
int indexofnew = newsize;
char *r;
rett = s + oldsize - 1;
r = s + newsize - 1;
while (rett!=r)
{
if (*rett == ' ')
{
*r-- = '0';
*r-- = '2';
*r-- = '%';
}
else {
*r--= *rett--;
}
}
return s;
}
void main() {
char s[] = "we are";
printf("%s\n", s);
printf("%s\n", replaceblank(s));
}
主要是ret,rett,s这三个指针的值
之前这三个值都是"we are“
有什么办法不改变他的值吗?