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);
} 展开
void main()
{
char str[80],*p;
int i=0;
p=str;
【1】;
while(*p)
{
if(*p!=' ')
str[i++]=*p;
p++;
}
【2】;
puts(str);
} 展开
5个回答
展开全部
*p='\0'或则str[i]='\0'的意思还得从上面的那个循环开始说起,while(*P)何时才为假吗?必须当p指向字符串的结尾标志才行,也就是p指向了'\0',于是*p=0,于是循环退出,循环里面就是把空格去掉,这里的去掉的方法是把以前空格的位置用*p对其赋值,*P的值是空格后的字符,例如ab cd efg'\0'后来会变为abcdefg为什么这里没有'\0',那是因为还没来得及赋值给它就已经退出循环了,所以必须再循环后面加个'\0'。字符串一定要有'\0'做结尾标志,这个就不用说了
展开全部
gets(str)
*p='\0'或者str[i]='\0'
*p='\0'或者str[i]='\0'
追问
能不能解释一下*p='\0'或者str[i]='\0'连同后面是什么意思
追答
*p='\0'或者str[i]='\0'表示字符串str结束,由于删除了空格,字符串长度发生变化,结尾标识也要移动,如果缺少了这一行,会导致输出不需要的字符
puts(str)表示输出字符串str
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第二个填星号p是错误的,不能达到效果,只能填str
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
【1】填 gets(str);
【2】填 str[i]='\0';
【2】填 str[i]='\0';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
gets(str);
*p='\0';
*p='\0';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询