gets函数的理解和应用

gets函数的用法。

gets函数使用要加头文件#include<string.h>

输入时用scanf("%d   ",&b);  %d后的空格也可以用\n(换行)代替。此处的空格和换行都起到两个作用。1、结束scanf的输入(scanf在遇到空格‘\n’时就像遇到了终止符,会自动停止输入)2、屏蔽掉后面紧挨着输出的回车。

scanf("%d",&repeat);
gets(b);

如果此时在%d后面加一个空格或者是换行符,那么此时在结束scanf的输入后不会读取回车符。

如果此时再加入回车符就像啥也没有输入一样!!!(因为被屏蔽了

还有一种解决办法,就是在scanf后紧贴着加一个a=putchar();这个时候putchar()会吞掉回车符,这样就不会干扰gets函数的运转。

切记:

#include<stdio.h>
#include<string.h>
int main()
{
int repeat,j,i,*p;
char a[7][15]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"},b[10];————————二维数组的运用
scanf("%d",&repeat);   ————-————a=putchar();可以放在这里
for (i=0;i<repeat;i++)                                  |
{      ______________________________但是不能直接放在这儿,否则会参与循环,这样gets还是有可能会“吞掉”回车符!!

gets(b);

for (j=0;j<7;j++)
{
if (strcmp(b,a[j])==0)
{
printf("%d\n",j+1);
break;
}
}
if (j==7)
printf("-1");
}
return 0;
}

posted @ 2022-11-22 02:11  三万里浮沉  阅读(1095)  评论(0)    收藏  举报