C语言实现去掉字符串行首和行尾的空字符,但字符之间的空字符保留。请详细解释一下这段代码的作用。

输入输出如下... 输入输出如下 展开
 我来答
cdyzxy
2016-11-12
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
第1个循环,变量i的值是字符串最后一个字符的下标开始,每次循环减1,即向前逐个字符进行判断,条件是isspace(str[i]),如果是空格就再次减1,否则不是空格则退出循环,退出循环时,i指向字符串末尾第1个非空格的字符,字符串需要在这个字符之后结束,所以给str[i+1]赋值字符串结束符0。
第2个循环i是从字符串第1个字符开始,每次循环i加1,找到紧跟着的下一字符位置,如果遇到不是空格的字符时,停止循环,退出循环是i指向字符串第1个非空格字符位置
由于第1个循环已经将字符串结束符赋值给了字符串结尾非空格字符之后位置元素,所以从str+i开始的字符串就是去掉了首尾连续字符后的字符串了。
输出字符串后,可以继续输入新的字符串,直到输入END或直接输入回车后,程序停止运行,退出while循环,这是while循环体最后一个if语句的作用。
xiahoonhy
推荐于2018-02-11
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

更多追问追答
追问
先谢谢你。我现在还没有学指针,那个printf里的"%s\n",&str[i]不太懂
追答
这个就是取地址,也就是str字符串的第i个位置开始的地址(因为0-i为空格,所以不用显示)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式