C语言完善程序,删除字符串中的所有空格

#include"stdio.h"voidmain(){charstr[80],*p;inti=0;p=str;【1】;while(*p){if(*p!='')str[i... #include "stdio.h"
void main()
{
char str[80],*p;
int i=0;
p=str;
【1】;
while(*p)
{
if(*p!=' ')
str[i++]=*p;
p++;
}
【2】;
puts(str);
}
展开
 我来答
百度网友e465d691
推荐于2017-10-08
知道答主
回答量:9
采纳率:0%
帮助的人:9.8万
展开全部
*p='\0'或则str[i]='\0'的意思还得从上面的那个循环开始说起,while(*P)何时才为假吗?必须当p指向字符串的结尾标志才行,也就是p指向了'\0',于是*p=0,于是循环退出,循环里面就是把空格去掉,这里的去掉的方法是把以前空格的位置用*p对其赋值,*P的值是空格后的字符,例如ab cd efg'\0'后来会变为abcdefg为什么这里没有'\0',那是因为还没来得及赋值给它就已经退出循环了,所以必须再循环后面加个'\0'。字符串一定要有'\0'做结尾标志,这个就不用说了
百度网友816dc07
推荐于2018-12-16 · TA获得超过502个赞
知道答主
回答量:267
采纳率:100%
帮助的人:134万
展开全部
gets(str)
*p='\0'或者str[i]='\0'
追问
能不能解释一下*p='\0'或者str[i]='\0'连同后面是什么意思
追答
*p='\0'或者str[i]='\0'表示字符串str结束,由于删除了空格,字符串长度发生变化,结尾标识也要移动,如果缺少了这一行,会导致输出不需要的字符
puts(str)表示输出字符串str
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嘿嘿嘿好多好
2018-12-16
知道答主
回答量:2
采纳率:0%
帮助的人:1562
展开全部
第二个填星号p是错误的,不能达到效果,只能填str
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wenqing8585
2017-10-06 · TA获得超过8252个赞
知道大有可为答主
回答量:8078
采纳率:70%
帮助的人:3871万
展开全部
【1】填 gets(str);
【2】填 str[i]='\0';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2014-06-22 · TA获得超过718个赞
知道小有建树答主
回答量:1179
采纳率:0%
帮助的人:619万
展开全部
gets(str);
*p='\0';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式