首页 > 学院 > 开发设计 > 正文

C语言gets()和scanf()函数

2019-11-11 02:47:02
字体:
来源:转载
供稿:网友

来自百度经验(原文区别2不正确,已更正):

C语言中scanf()和用gets()接收字符串的区别_百度经验http://jingyan.baidu.com/article/ed15cb1b59a87d1be2698172.html

区别1:scanf()可以同时接受多个字符串,而gets()一次只能接受一个字符串。

 例如:scanf("%s %s",a,b);就可以同时给a和b两个字符串指针赋值,getchar就不可以;

区别2:scanf()一定条件下能接受带空格的字符串,而gets()能接受带空格的字符串。

scanf("%c",a);函数遇到空格可以识别,但是"%s"格式不可以识别空格和换行,空格或者换行表示字符串输入的结束;

gets()函数是可以识别空格的;

区别3:scanf()不能接受长度为0的字符串,会自动忽略开头的所有空格,并且以空格、换行符、回车结束输入。而gets()能接受长度为0的字符串,不会自动忽略开头的所有空格或回车,并以回车结束。

补充:scanf()完一个整数后,如果要用gets(),需要先用getchar()接受整数后的换行符

结论:如果要读入一个带空格符的字符串时用gets()比较方便, 如非要用scanf(),必须手动给字符串的末尾赋值为'/0',如果不带空格,那么gets()和scanf()效果是一样的。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表