才学C问个基础问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 14:51:00
char a[1024];
gets(a);
scanf("%s",a);
下面两个没什么区别吧,那么scanf和gets有什么不同呢?

scanf %s时空格和回车都作为输入数据的分隔而不能被读入,即遇到空格或回车就将前面的内容存入到字符串中
gets 只将回车作为结束符,中间空格也将存入字符串中,最后读入的回车符不存入字符串中

scanf不能输入空格,gets能输入空格!
scanf的格式不对,应该为scanf("%s",&a)
另外,数组在输入的时候应借助for循环。如:
for(i=0;i<1024;i++)
gets();

for(i=0;i<1024;i++)
scanf("%s",a[i]);

gets只能用于输入字符串
而scanf可以输入多种类型的数据:如整数、字符、字符串、实数

scanf 可以通过引号内的控制符控制输入格式

scanf("str = %s", s);
就只能读取
str = xxxx
中的xxxx了。