char str[100];
一是: scanf("%s",str);
二是: gets(str);
但是下面两个程序,用不同的输入语句结果有一个是错误的.
程序一输出的结果错误.
#include "stdio.h"
main()
{ char str[100],c;
int i,count;
printf("input a array: \n");
scanf("%s",str);
printf("input a char: \n");
c=getchar();
count=0;
for(i=0;str[i]!='\0';i++)
if(c==str[i])
count++;
printf("count=%d\n",count);
}
程序二: 输出的结果正确
#include "stdio.h"
main()
{ char str[100],c;
int i,count;
printf("input a array: \n");
gets(str);
printf("input a char: \n");
c=getchar();
count=0;
for(i=0;str[i]!='\0';i++)
if(c==str[i])
count++;
printf("count=%d\n",count);
}
第一个程序中出现的错误是 c=getchar(); 这个语句不能执行,导致最后输出的count的值为0 .
如果更改了字符串输入语句后,整个程序就能够正确输出结果了.第二个程序能够正确输出结果.
但是字符串输入的两个语句功能都是一样的,为什么在运行时会出现不同的结果?
[此贴子已经被作者于2006-5-10 13:46:20编辑过]