题目如下
代码如下
/*注意区分getchar()和gets()的区别
getchar()来储存输入的字符串会储存我们最后敲的回车键'\n'
gets()则不会储存,里面最后一个字符为停止符'\0'
*/
#include<stdio.h>
int main()
{
char a,s[100],i,b;
scanf("%c",&a);//scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致)
int flag=0;
getchar();//用来把scanf()中输入的'\n'吸收,
//如果没有这步gets()就不会等待从键盘键入字符,而是直接输出结果导致读取有误
gets(s);
for(i=0;s[i]!='\0';i++){//gets()会把字符串中的'\n'变为'\0',以'\0'为最后一个字符
if(s[i]==a){
flag=1;
b=i;}
}
if(flag==0)printf("No Found");
else printf("%d",b);
return 0;
}
这道题的难点需要区分清楚getchar()和gets()还有scanf()的区别