mx_try 2017-08-10 13:37 采纳率: 0%
浏览 840
已采纳

三个指针的值为什么变了?

#include
char replaceblank(char s[]);

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));
}

上面是我的程序,主要是s,rett,ret这三个指针变量的值,在执行下面这段程序前,值是we re:
while (*ret!= '\0')
{
++oldsize;
if (*ret = ' ') {
newsize += 2;
}
else {
++newsize;
}
ret++;

    这个循环执行第一次后,三个值一起变成 e are;
    ![图片说明](https://img-ask.csdn.net/upload/201708/10/1502372254_610518.png
    求解答
  • 写回答

3条回答 默认 最新

  • 大米粥哥哥 2017-08-11 01:52
    关注

    if (*ret = ' ')
    你这里给它赋值成空了
    改成 ==

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘