gets puts 和printf scanf的区别

来源:百度知道 编辑:UC知道 时间:2024/06/08 18:51:41
printf scanf 可以取代gets puts吗?

scanf不能完全取代gets
scanf里面我们无法输入空格,当你输入空格时,空格后面的内容就没有放到你指定的变量里面。例如
char a[4];
scanf ("%s",a);//输入一个字符串,%s是表示字符串
for (i=0;i<=4;i++)
printf("%c",a[i]);
运行的时候你输入i am试试,它得到的是i,而后面的 空格和am就没有了。
换句话说,scanf当遇到空格时,它就把它当做'\0',就是自动停止
如果你用gets的话
char a[4];
a=gets();//输入一个字符串,%s是表示字符串
for (i=0;i<=4;i++)
printf("%c",a[i]);
你还是输入i am的到的就是i am

而printf和puts没什么区别