有一篇文章,共有3行文字,每行有个80字符.要求分别统计出其中英文大写字母,小写字母,空格和其他字符个数

我自己写的 执行后 个数总是错的 还有8位数的个数。。。救命啊~~~!!!!
#include<stdio.h>
int main()
{int i,j=0,k=0,l=0,m=0,n=0;
char str0[151],str1[50],str2[50],str3[50];
gets(str1);gets(str2);gets(str3);
strcat(str0,str1);strcat(str0,str2);strcat(str0,str3);
for(i=0;str0[i]!='\0';i++)
{ if(str0[i]<='Z'&&str0[i]>='A')j++;
else if (str0[i]<='z'&&str0[i]>='a')k++;
else if (str0[i]<='9'&&str0[i]>='0') l++;
else if (str0[i]==' ')m++;
else n++; }
printf("大写英文字母有%5d个\n",j);
printf("小写英文字母有%5d个\n",k);
printf("数字有%5d个\n",l);
printf("空格有%5d个\n",m);
printf("其他字符有%5d个\n",n);
return 0;}

#include <stdio.h>
#include <string.h>
#include <CTYPE.H>
#define N 3
#define M 100
int main()
{ char c[N][M];
int i,j;
int d,x,s,k,q;
d = x = s = k = q = 0;
for(i = 0;i < N;i++)
{ printf("请输入第%d行:\n",i + 1);
gets(c[i]);
}
puts(c[0]);
printf("\n");
for(i = 0;i < N;i++)
for(j = 0;j < M;j++)
{ if(isupper(c[i][j])) d++;
else if(islower(c[i][j])) x++;
else if(isdigit(c[i][j])) s++;
else if(isspace(c[i][j])) k++;
else q++; }
printf("英文大写字母有:%d个\n", d);
printf("英文小写字母有:%d个\n", x);
printf("数字有:%d个\n", s);
printf("空格有:%d个\n", k);
printf("其他字符有:%d个\n", q);
puts (strupr(c);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答