有一篇文章,共有3行文字,每行有80个字符,请求帮忙,谢谢
这是我编的程序,但是有错误,我觉得错误在gets(text[i])这里,但是不知道怎么改,我看了看答案,答案我有点疑问#include <stdio.h>
int main()
{
int i,j,upp,low,dig,spa,oth;
char text[3][80]={'\0'};
upp=low=dig=spa=oth=0;
for (i=0;i<3;i++)
{
printf("please input line %d:\n",i+1);
gets(text[i]);
for (j=0;(text[i][j]=getchar())!='\n';j++)
{
if (text[i][j]>='A'&&text[i][j]<='Z')
upp++;
else if (text[i][j]>='a'&&text[i][j]<='z')
low++;
else if (text[i][j]>='0' && text[i][j]<='9')
dig++;
else if (text[i][j]==' ')
spa++;
else
oth++;
}
}
printf("\nupper case: %d\n",upp);
printf("lower case: %d\n",low);
printf("digit : %d\n",dig);
printf("space : %d\n",spa);
printf("other : %d\n",oth);
return 0;
}
答案:
#include <stdio.h>
int main()
{
int upper,lower,digit,space,other,i,j;
upper=lower=digit=space=other=0;
char a[3][80]={'\0'};
printf("请输入三段文字:\n");
for(i=0;i<3;i++)
{
for(j=0;(a[i][j]=getchar())!='\n';j++)
{
if(a[i][j]>='a'&&a[i][j]<='z')
lower++;
else if(a[i][j]>='A'&&a[i][j]<='Z')
upper++;
else if(a[i][j]>='0'&&a[i][j]<='9')
digit++;
else if(a[i][j]==' ')
space++;
else
other++;
}
}
printf("这三行文字中共有:\n小写字母:\t%d\n大写字母:\t%d\n数字:\t\t%d\n空格:\t\t%d\n其他字符:\t%d\n",lower,upper,digit,space,other);
}
为什么答案没有scanf语句?
请求帮忙,谢谢