关于gets()的问题
写了一个程序,扫描字符串,搜寻某一指定字符第一次出现的位置
程序如下:
#include<stdio.h>
#define MAX 40
char * char_in(char *,char);/*搜寻字符的子函数*/
int main(void)
{
char s[MAX],*ptr,ch;
printf("Enter the string:\n");
while(gets(s)!=NULL)//循环输入
{
printf("Enter the character:\n");
scanf("%c",&ch);
if((ptr=char_in(s,ch))!=NULL)//判断是否有字符
{
printf("Have the character!\n");
puts(ptr);
}
else printf("Donot have!\n");
printf("Enter the string!\n");
}
return 0;
}
char *char_in(char *s,char ch)/*搜寻字符的子函数*/
{
while(*s)
{
if(*s==ch)
return s;
s++;
}
return NULL;
}
现在问题是:不能保证循环输入,在第一次输入之后Enter the string!与Enter
the character:一起出现
为什么会出现这种情况,gets()在使用时不能这样用么?
如果有gets()的原代码就好了