帮我解释一下这道C语言的编程题目????
程序填空:从键盘输入字符串,以回车结束.通过指针操作,将所有大写字母转换为小写字母,其它字符不变,请填空.#include<stdio.h>main(){inti=0;c...
程序填空:从键盘输入字符串,以回车结束.通过指针操作,将所有大写字母转换为小写字母,其它字符不变,请填空.
#include <stdio.h>
main()
{int i=0;
char s[80],*p;
printf("INPUT STRING:\n");
while((s[i]=getchar())___'\n') /*$BLANK1$*/
i++;
p=s;
while(___!='\n') /*$BLANK2$*/
{if(*p>='A'&&*p<='Z')
*p=*p___; /*$BLANK3$*/
p++; }
printf("%s",s); }
该题目一共有三个空,我是这样填写的:
(1)!=
(2)*p
(3)+32
这个题目是C语言上机模拟题中的,提交答案后,也显示正确.但是有一个疑问,就是最后一句输出字符串s的打印语句,能用%s来输出是不是题中使用’\n’作为字符串的结束标识符也是可以的啊?是不是还可以用别的字符代替’\0’呢?另外就是说,假设就按照题中的方法输出,当输入"aBcZ#F"后,除了输出想要的”abcz#f”之外,换行后还有一些奇怪的字符显示在后面?(因为对照S[80]数组中的随机内容的显示,应该不是那些奇怪的字符)那么这里的'\n'到底能不能作为字符串的结束标识符来取代’\0’呢?显示出来的奇怪字符序列又是什么?什么时候结束输出?请大家帮我解释一下.谢谢,最好能详细一些,能在机器上运行当然最好了. 展开
#include <stdio.h>
main()
{int i=0;
char s[80],*p;
printf("INPUT STRING:\n");
while((s[i]=getchar())___'\n') /*$BLANK1$*/
i++;
p=s;
while(___!='\n') /*$BLANK2$*/
{if(*p>='A'&&*p<='Z')
*p=*p___; /*$BLANK3$*/
p++; }
printf("%s",s); }
该题目一共有三个空,我是这样填写的:
(1)!=
(2)*p
(3)+32
这个题目是C语言上机模拟题中的,提交答案后,也显示正确.但是有一个疑问,就是最后一句输出字符串s的打印语句,能用%s来输出是不是题中使用’\n’作为字符串的结束标识符也是可以的啊?是不是还可以用别的字符代替’\0’呢?另外就是说,假设就按照题中的方法输出,当输入"aBcZ#F"后,除了输出想要的”abcz#f”之外,换行后还有一些奇怪的字符显示在后面?(因为对照S[80]数组中的随机内容的显示,应该不是那些奇怪的字符)那么这里的'\n'到底能不能作为字符串的结束标识符来取代’\0’呢?显示出来的奇怪字符序列又是什么?什么时候结束输出?请大家帮我解释一下.谢谢,最好能详细一些,能在机器上运行当然最好了. 展开
3个回答
展开全部
/*我上机没有出现什么东东,正常啊@*/
while((s[i]=getchar())___'\n') /*$BLANK1$*/
一定要\n要不然会死循环
while(*p!='\0') /*$BLANK2$*/
可以\0
s[80]="aBcZ#F\n"
s[80]=aBcZ#F\n\0
已经是这样的
while((s[i]=getchar())___'\n') /*$BLANK1$*/
一定要\n要不然会死循环
while(*p!='\0') /*$BLANK2$*/
可以\0
s[80]="aBcZ#F\n"
s[80]=aBcZ#F\n\0
已经是这样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
作业自己做!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询