新手有点看不明白,求个老师指导一下指针字符串问题。
发表在C语言图书答疑 2019-01-01 悬赏:1 学分 《零基础学C语言》第9章 函数 203页-204页
是否精华
版块置顶:

本例函数是删除字符串中的所有空格
#include<stdio.h>
void allitrim(char *str)
{char *p=str;
while(*p!=0)
{if(*p==' ')
{char *q=p; 
while(*q!=0)
{*q=*(q+1);
q++;
}}
后边就不写了,就是else p++.后边还有个键入字符串的函数,对这个影响不大。

感觉有点绕啊。为什么一定要用*q来帮忙去除空格?p内储存的不是指向str的地址吗?不能直接做if (*p=' '); p=(p+1)吗?


分享到:
精彩评论 3
李木子
学分:2954 LV11
2019-01-02
沙发

你好:

   按照你的想法操作一下 看是否能够出现同样的结果

13733866917
学分:15 LV2
2019-01-02
板凳

李木子 发表于2019-01-02 10:05

你好:

   按照你的想法操作一下 看是否能够出现同样的结果

我试过了,出现不同结果,空格并没有消除?这是为什么?

13733866917
学分:15 LV2
2019-01-02
地板

李木子 发表于2019-01-02 10:05

你好:

   按照你的想法操作一下 看是否能够出现同样的结果

我搞明白了,书里没有说地址和单纯值的区别。地址是死的,地址的更换意味着跳级运算下一次,而值的更换只代表值的更换,不会让系统跳过去算。

我一直以为地址也只是一堆数字,却忘了它们也是一个个内存空间。

首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照