gets(),为什么在这种情况下不对?
#include "stdio.h"#include "string.h"
void main()
{
int upper=0,lower=0,space=0,digit=0,other=0,i=0;
char *p,s[50];
printf("input string:");
gets(s);
//while((s[i]=getchar())!='\n') i++;
p=&s[0];
while(*p!='\n')
{
if(*p>='A'&&*p<='Z') upper++;
else if(*p>='a'&&*p<='z') lower++;
else if(*p==' ') space++;
else if(*p>='0'&&*p<='9') digit++;
else other++;
p++;
}
printf("\nupper:%d,lower:%d,space:%d,digit:%d,other:%d\n",upper,lower,space,digit,other);
}
今天在运行时,发现用gets(s)不对,而应该用下一个形式,记得在我以前编的程序里,gets()也这样用是对的呀,谁能解释一下?