如题所述
#include <stdio.h>
#include <stdlib.h>
#define N 100
void func3()
{
char str[N];
int i,lower=0,upper=0,digit=0,space=0;
long others=0;
printf("Input a string:");
gets(str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='a' && str[i]<='z')
lower++; /*统计小写英文字母*/
else if(str[i]>='A' && str[i]<='Z')
upper++; /*统计大写英文字母*/
else if(str[i]>='0' && str[i]<='9')
digit++; /*统计字符串*/
else if(str[i]==' ')
space++;
else
others++; /*统计其他字母*/
}
printf("lower English character:%d\n",lower);
printf("upper English character:%d\n",upper);
printf("digit character:%ld\n",digit);
printf("space:%d\n",space);
printf("other character: %ld\n",others);
return 0;
}
int main()
{
while(1)
{
func3();
printf("\n");
system("pause");
}
return 0;
}
扩展资料:
程序实现思路分析
统计大小写字母、数字的个数,首先要判断出字符是属于哪一种,然后增加计数。
1、判断
小写字母的范围为:'a'~'z'
大写字母的范围为:'A'~'Z'
数字的范围为:'0'~'9'
2、声明三个int变量并赋值初值为0
lower——统计小写英文字母
upper——统计大写英文字母
digit——统计数字
int main()
{
char ch;
int digit,upper,lower;
digit=upper=lower=0; //初始化为0
while((ch=getchar()) != '\n') //输入一行字符串
{
if(ch>='0' && ch<='9')
digit++;
else if(ch>='A' && ch<='Z')
upper++;
else if(ch>='a' && ch<='z')
lower++;
}
printf("数字字符个数: %d\n",digit);
printf("大写字母个数: %d\n",upper);
printf("小写字母个数: %d\n",lower);
return 0;
}
示例运行结果:
gjkdaj12356 ABCDE0123 012
数字字符个数: 12
大写字母个数: 5
小写字母个数: 6
追问怎么错了啊
追答如果用的是gets()函数的话,修改如下:
#include <stdio.h>int main()
{
char ch[100];
int digit,upper,lower,i=0;
digit=upper=lower=0; //初始化为0
gets(ch); //输入一行字符串
while(ch[i] != '\0')
{
if(ch[i]>='0' && ch[i]<='9')
digit++;
else if(ch[i]>='A' && ch[i]<='Z')
upper++;
else if(ch[i]>='a' && ch[i]<='z')
lower++;
i++;
}
printf("数字字符个数: %d\n",digit);
printf("大写字母个数: %d\n",upper);
printf("小写字母个数: %d\n",lower);
return 0;
}
示例运行结果:
gjkdaj12356 ABCDE0123 012
数字字符个数: 12
大写字母个数: 5
小写字母个数: 6
本回答被提问者和网友采纳你好!
修改后的代码,说明一会上
123456789101112131415161718192021222324#include<<a href=" target="_blank" class="baidu-highlight">stdio.h</a>>int main(){ char a[3][80]; int i,j,n1,n2,n3,n4,n5; n1=n2=n3=n4=n5=0; for(i=0;i<3;i++) {gets(a[i]); for(j=0;a[i][j]!='\0';j++) {if(a[i][j]>='A'&&a[i][j]<='Z') n1++; else if(a[i][j]>='a'&&a[i][j]<='z') n2++; else if(a[i][j]==' ') n3++; else if(a[i][j]>='0'&&a[i][j]<='9') n4++; else n5++; } } printf("%d,%d,%d,%d,%d",n1,n2,n3,n4,n5); return 0;}
修改处的说明,红圈处,加上等号,变成 >= 和 <=,篮圈的地方,0 和 9 加上单引号