一个小小的关于C语言的问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:33:06
设char b[20];若从键盘输入字符串“spkaoshi”,则正确的函数引用是:
A.scanf(“%s”,b);
B.gets(b);
想问一下两者在用来输入字符串的时候有什么区别吗?

1.对输入缓冲区的回车换行符的处理不同:
gets()对回车换行符也进行处理,它是以回车作为输入结束的标志;
scanf()不对回车换行符进行处理,它是以空格作为字符串输入结束的标志。
你可以测试一下只是scanf(“%s”,b); 按回车换行,它会一直让你输入。但是用gets(b);的话回车的话它也会接收。
2.gets()只针对字符串输入处理。
scanf()还可以处理其他类型输入的数据。

楼上的大体说对了。
只是scanf(“%s”,b); 按回车也会停止输入,当有空格时会让你继续输入,只是只有空格前面的内容会存入b[20],
gets(b); 可以有空格,直到你按回车。

A

b代表是一维数组首地址,不用&.

gets()也是用来输入字符串的,getchar()就是输入一个字符.

_study:str b; ??这不是C语言的定义

应该选择A
因为你定义的是一个字符数组 而非字符串
若你定义 str b;
就用B选项就可以了

用杀软件杀杀毒吧,可能是中毒了。你的scanf里有&吗?效果是一样的