c语言,请解释一下我画波浪线的地方。。这个程序几乎全看不懂。。

 我来答
景茹炜L8
2013-01-28 · TA获得超过481个赞
知道小有建树答主
回答量:617
采纳率:0%
帮助的人:381万
展开全部
以下按波浪线的出现顺序标号:

1、char *p,定义了一个指针变量p,这个变量p中存储一个内存地址。*p表示该内存地址中的内容。那么,while(*p)表示的是该内存地址中的内容不为空(即内存地址中的内容不为0,一般情况下,一个字符数组中有内容,不为空;字符串结束时,有一个\0,即0.)时,就循环。实质上就是如果是字符就循环,遇到字符串结束,就终止循环。
2、同理,while(i<=3 && *p)表示当i<=3,并且该内存地址中的内容不为0时,就循环。实质上就是如果是字符就循环,遇到字符串结束,就终止循环。
3、同理,if(*p),实质上就是如果是字符就执行if后面的语句,遇到字符串结束,就不执行if后面的语句。
4、b[k++]=" ";表示字符数组b中的第b[k]个字符,赋值为空格,然后k++(即k=k+1)。这条语句相当于两条语句:b[k]="";k=k+1;
5、b[k]=‘\0’;一个字符串必须以\0结束。所以,在字符数组的第k位存储一个\0。
6、ch a[60],b[80];定义了两个字符数组,a能够存储60个字符,b能够存储80个字符。需要注意的时,以上所说的60、80中包括\0在内。
7、printf("Enter a String:");gets(a);这是两条语句,可以分成两行,
printf("Enter a String:");用来显示提示信息,让用户输入一串字符
gets(a);用来接收用户的输入,并且存放到字符数组a中。
8、printf("The Original String:");puts(a);也是两条语句,显示(确认)用户输入的字符串。
9、printf("\nThe String after insert space:");显示一条信息,意思是在字符串插入空格后的内容是:。其中\n在屏幕上换行
10、puts(b);printf("\n\n");输出进行函数调用后的字符串。

特别是,解释一下字符数组与字符串的区别:
char a[60];
定义了一个字符数组,可以存储60个字符。
如果按字符串显示时,例如puts(a),并不一定能够完全按60个字符输出,可能多于60个,也可能少于60个。
因为puts(a)函数,从第一个字符开始输出,直到遇到\0时为止,也就是说,\0以后的字符不再输出。
如果a[0]为\0,则什么出不显示。如果直到a[59]也没有遇到\0,puts函数会一直反内存a[59]中以后的地址中内容输出来,一般是乱码。如果a[7]是\0,则只显示前7个字符,即a[0]到a[6]共7个。
何渡忘川
2013-01-28 · TA获得超过370个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:95.4万
展开全部
char a[80],b[80];是定义字符数组,第二行printf("…");是输出里面的句子。gets(a);是向数组a里输入字符。puts(a);是输出数组a的各个元素。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式