分别统计一个字符串中出现小写字母、大写字母、数字和空格的个数。
输入格式:
在一行中输入长度不超过40的字符串。
输出格式:
第一行中输出“小写字母=x“ 第二行中输出“大写字母=y“ 第三行中输出“数字=z” 第四行中输出“空格=m” 所有结果均原样输出,没有列宽控制。
输入样例:
sd2h b57 sA
输出样例:
小写字母=5
大写字母=1
数字=3
空格=2
对每个字符做判断就可以了。
#include<stdio.h>
int main()
{
int a=0,b=0,c=0,d=0,e=0;
char *p,str[80];
p=str;
gets(str);
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++;}
else
{e++;p++;}
printf("%d %d %d %d %d\n",a,b,c,d,e);
return 0;
}
如有帮助往采纳。点击我回答右上角【采纳】按钮。
#include <stdio.h>
int main()
{ char a[80];
char str;
int i;
int b[5]={0};
gets(a);
for(i=0;(str=a[i])!='\0';i++)
{
if(str>='a'&&str<='z')
b[0]++;
else if(str>='A'&&str<='Z')
b[1]++;
else if(str>='0'&&str<='9')
b[2]++;
else if(str==' ')
b[3]++;
}
printf("小写字母:%d\n",b[0]);
printf("大写字母:%d\n",b[1]);
printf("数字:%d\n",b[2]);
printf("空格:%d\n",b[3]);
return 0;
}
我是按照这样写的 但是pta显示错误 验证确实是对的
代码如下
#include <stdio.h>
#include <string.h>
int main()
{
int i = 0;
int a=0;
int A =0;
int nmb = 0;
int space = 0;
char buf[40]={0};
int len;
printf("请输入字符串:");
gets(buf);
len = strlen(buf);
while(i < len)
{
if(buf[i] >= 'a' && buf[i] <= 'z')
a++;
else if(buf[i] >= 'A' && buf[i] <= 'A')
A++;
else if(buf[i] >= '0' && buf[i] <= '9')
nmb++;
else if(buf[i] == ' ')
space++;
i++;
}
printf("小写字母=%d\n",a);
printf("大写字母=%d\n",A);
printf("数字=%d\n",a);
printf("空格=%d\n",a);
return 0;
}