```c
#include<stdio.h>
int main()
{
char str[3][80];
int i,j,t;
int a=0;//大写
int b=0;//小写
int Number=0;//数字
int Space=0;//空格
int Other=0;//其它
printf("请输入三行字符,每行80个\n");
for(i=1;i<=3;i++)
{
printf("请输入第%d行字符:",i);
gets(str[i]);
}
for(i=1;i<=3;i++)
{
for(j=1;(t=str[i][j])!='\0';j++)
{
if(t>='A'&&t<='Z')
{
a++;//大写
}
else if(t>='a'&&t<='z')
{
b++;//小写
}
else if(t>='0'&&t<='9')
{
Number++;
}
else if(t==32)
{
Space++;
}
else
{
Other++;
}
}
}
printf("大写字母个数为:%d\n",a);
printf("小写字母个数为:%d\n",b);
printf("数字个数为:%d\n",Number);
printf("空格个数为:%d\n",Space);
printf("其他字符个数为:%d\n",Other);
return 0;
}
运行结果如下:

gets(str[i]);
gets()函数遇到空格就不保存了;
还有i从1存,数组长度应该是4,char str[4][80];
#include<stdio.h>
int main() {
char t;
int i, j;
int a = 0; //大写
int b = 0; //小写
int Number = 0; //数字
int Space = 0; //空格
int Other = 0; //其它
printf("请输入三行字符,每行80个\n");
for(i = 1; i <= 3; i++) {
printf("请输入第%d行字符:", i);
for(j = 0; (t = getchar()) != '\n'; j++) {
if(t >= 'A' && t <= 'Z') {
a++;//大写
} else if(t >= 'a' && t <= 'z') {
b++;//小写
} else if(t >= '0' && t <= '9') {
Number++;
} else if(t == ' ') {
Space++;
} else {
Other++;
}
}
}
printf("大写字母个数为:%d\n", a);
printf("小写字母个数为:%d\n", b);
printf("数字个数为:%d\n", Number);
printf("空格个数为:%d\n", Space);
printf("其他字符个数为:%d\n", Other);
return 0;
}