在c语言中,char a[100]; gets(a) 和scanf("%s",a);有什么不同?谢谢大家了!

除了他们的停止需要的按键的不同,别的不同.比如说在一个程序中分别用他们后会一个正常可运行,而另一个却不行.
例如#include<stdio.h>

int delete_data(char c,char strl[])
{
int m=0,i;
for(i=0;strl[i]!='\0';i++)
if(strl[i]==c)
m++;
return(m);
}
main()
{
const int s=100;
char c,strl[s];
int a,i;
printf("请输入一字符串,一字符:");
gets(strl);
printf("删除字符");
scanf("%c",&c);
a=delete_data(c,strl);
printf("%d\n",a);
for(i=0;strl[i]!='\0';i++)
if(strl[i]!=c)
printf("%c",strl[i]);
printf("\n");
}
中将gets(str1);换成scanf("%s",str1);

在c语言中,char a[100];定义的是一个字符数组
gets(a);scanf("%s",a);都可以从键盘直接输入字符串,与回车符结束,但gets(a) 算了字符串结束符'\0',所以实际输入的只有99个字符。
而scanf("%s",a);没有。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-22
区别很大:gets输出字符串要到回车为止,而scanf遇到空格就返回的。

补充:贴出你的程序,不可能发生这样的情况吧。本回答被网友采纳
第2个回答  2008-05-16
没什么不同

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网