C语言 gets()和scanf()函数的区别

来源:互联网 发布:淘宝750促销模板代码 编辑:程序博客网 时间:2024/06/03 19:56

scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串”hi hello”,则应该使用gets()函数。

gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。

char string[15]; gets(string); /遇到回车认为输入结束/

scanf(“%s”,string); /遇到空格认为输入结束/

所以在输入的字符串中包含空格时,应该使用gets输入。

scanf和gets获取字符串时的区别

在C语言中,能构获取字符串的函数至少有两个:

1.scanf()

所在头文件:stdio.h

语法:scanf(“格式控制字符串”,变量地址列表);

接受字符串时:scanf(“%s”,字符数组名或指针);

2.gets()

所在头文件:stdio.h

语法:gets(字符数组名或指针);

两者在接受字符串时:

1.不同点:

scanf不能接受空格、制表符Tab、回车等;

而gets能够接受空格、制表符Tab和回车等;

2.相同点:

字符串接受结束后自动加’\n’。

例1:

#include <stdio.h>main(){char ch1[10],ch2[10];scanf("%s",ch1);gets(ch2);}

依次键入asd空格fg回车,asd空格fg回车,则ch1=”asd\0”,ch2=”asd fg\0”。

例二:

#include <stdio.h>main(){char ch1[10],ch2[10],c1,c2;scanf("%s",ch1);c1=getchar();gets(ch2);c2=getchar();}

依次键入asdfg回车,asdfg回车,则ch1=”asdfg\0”,c1=’\n’,ch2=”asdfg\0”,c2需输入。

scanf :当遇到回车,空格和tab键会自动在字符串后面添加’\0’,但是回车,空格和tab键仍会留在输入的缓冲区中。

gets:可接受回车键之前输入的所有字符,并用’\n’替代 ‘\0’.回车键不会留在输入缓冲区中。

gets()用到读取字符串,用回车结束输入 。

scanf()可以读取所有类型的变量。

(转载自:http://www.cnblogs.com/wanghetao/archive/2011/11/01/2232234.html)

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 空隙的意思 空隙反义词 空隙读音 空隙造句 空隙率 牙齿空隙大 空隙的近义词 空隙的反义词 牙齿空隙太大图片 孔隙率和空隙率的区别 空隙的反义词是什么 牙齿空隙大怎么办 牙齿与牙齿之间有空隙怎么办 空难 空难惊魂 中国空难 大连空难 西安空难 空难事件 名古屋空难 空难纪录片 桂林空难 雅典空难 空难日 慕尼黑空难 温州空难 四川空难 空难片 兴登堡号空难 有1男6女空难后荒岛生活 空难必死人为什么还敢做飞机 中国空难全记录 空难后一男六女 2000武汉空难恐怖录音 瓦卢杰航空592号班机空难 庆典空飘气球 空飘气球租赁价格 飘空球 空飘气球尺寸 空飘 平步青云马空成全集