C语言:输入一行字符,分别统计出其中的大写英文字母、小写英文字母、数字和其他字符的个数

在C++6.0里编译提示总是出错,请高手指教一下到底错在那里了,谢了
#include <stdio.h>
#define N 100
main()
{
char all[N];
int i,xx=0,shuzi=0,qita=0,dx=0;
printf("请输入一个字符串(不超过100个):");
gets(all);
for(i=0;all[i];i++)
{
if(all[i]>'a'&&all[i]<'z'||all[i]>'A'&&all[i]<'Z')
if(all[i]>='A'&&all[i]<='Z')
dx++;
else
xx++;
else

if(all[i]>'0'&&all[i]<'9')
shuzi++;
else
qita++;
}
printf("其中大写字母%d个,小写字母%d个,数字%d个,其他字符%d个\n",dx,xx,shuzi,qita);
}

语法错误:
printf("其中大写字母%d个,小写字母%d个,数字%d个,其他字符%d个\n",dx,xx,shuzi,qita);
dx后面的逗号不是英文的。算法也有错误:你判断的时候if(all[i]>'a'&&all[i]<'z'||all[i]>'A'&&all[i]<'Z')
应该把>都改成>=,<也一样,不改的话a、A、z、Z的判断将被划在其他类里,数字的判断也应该是大于等于,小于等于,改完后代码为:
#include <stdio.h>
#define N 100
main()
{
char all[N];
int i,xx=0,shuzi=0,qita=0,dx=0;
printf("请输入一个字符串(不超过100个):");
gets(all);
for(i=0;all[i];i++)
{
if(all[i]>='a'&&all[i]<='z'||all[i]>='A'&&all[i]<='Z')
if(all[i]>='A'&&all[i]<='Z')
dx++;
else
xx++;
else
if(all[i]>='0'&&all[i]<='9')
shuzi++;
else
qita++;
}
printf("其中大写字母%d个,小写字母%d个,数字%d个,其他字符%d个\n",dx,xx,shuzi,qita);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-18
把gets(all);这句改成
char c;
int i=0;
while((c=getchar())!='\n')
{
if(i<N) all[i++]=c;
}
这样应该就好了

C语言:输入一行字符,分别统计出其中的大写英文字母、小写英文字母、数字...
} printf("其中大写字母%d个,小写字母%d个,数字%d个,其他字符%d个\\n",dx,xx,shuzi,qita);}

...统计出大写字母,小写字母,空格,数字和其他字符?
printf("大写字母:%d, 小写字母:%d, 空格:%d, 数字:%d, 其他:%d\\n",upper, lower, space, digit, other);return 0;}

输入一行字符,分别统计其中的英文大写字母,小写字母,数字字符和其他字符...
printf("小写字母个数:%d\\n",x);printf("大写字母个数:%d\\n",d);printf("数字个数:%d\\n",s);printf("其他字符个数:%d\\n",q);}

c语言 输入一串字符串,统计并输出其中的大写字母、小写字母、数字字符...
} printf("数字字符数量:%d\\n小写字母字符数量:%d\\n大写字母字符数量:%d\\n",sum0,suma,sumA);}

c语言,输入一行字符,分别统计出其中大写字母、小写字母、空格、数字及...
else if (*a == ' '){ k++;} else if (*a >= '0' && *a <= '9'){ shu++;} else { qi++;} a++;} printf("大写字母:%d\\n小写字母:%d\\n空格:%d\\n数字:%d\\n其它字符:%d\\n", d, s, k, shu, qi);} int main(){ char b[512];gets(b);fun(b);return 0;} ...

输入一串字符,长度不超过80个,分别统计出其中大写英文字母、空格和其...
include <string.h> void main(){ char str[80];int i, len, CountBig=0, CountSpace=0, CountOther=0;gets(str);len =strlen(str);for (i=0; i < len; i++){ if (str[i] >= 'A' && str[i] <='Z'){ CountBig++;} else if (str[i]==' '){ CountSpace++;} else...

输入一行字符,分别统计出其中英文字母(包括大小写)、空格、数字和其他字...
int main(){ char c;int letters=0,spaces=0,digits=0,others=0;printf("请输入一串任意的字符:\\n");while((c=getchar())!='\\n'){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letters++;else if(c>='0'&&c<='9')digits++;else if(c==' ')spaces++;else others++...

编程题:输入一行文字,分别统计出其中英文大写字母、小写字母、空格、数...
\/\/英文大写字母、小写字母、空格、数字和其它字符 for(i=0;i<strlen(p);i++){ if(p[i]>='A'&&p[i]<='Z')daxie++;else if(p[i]>='a'&&p[i]<='z')xiaoxie++;else if(p[i]==' ')kongge++;else if(p[i]>='0'&&p[i]<='9')shuzi++;else other++;} printf("大写...

c语言,输入一行字符,分别统计出其中大写字母、小写字母、空格、数字及...
int main(){ int a=0,b=0,c=0,d=0,e=0;char *p,str[80];p=str;scanf("%s",p);while(*p)if(*p>='A' && *p <='Z'){a++;p++;} else if(*p>='a' && *p <='z'){b++;p++;} else if(*p==' '){c++;p++;} else if(*p>='0' && *p <='9'){d++;p++;...

c++,输入一行字符,分别统计其中的英文大写字母,小写字母,数字字符和其 ...
因为一个字符占一个字节,所以字节数=字符数。创建一个数组来存放每个字符对应的ASCII码,然后根据ASCII码来判断是什么字符。大写英文字符从65-90,小写英文字符从97-122,数字字符为48-57,剩下的自然是其他字符了。设置一个循环判断语句,就行了,自己写一下代码,写不出来再问我,我再贴给你。

相似回答