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;
}