统计各类字符个数565656

分别统计一个字符串中出现小写字母、大写字母、数字和空格的个数。

输入格式:

在一行中输入长度不超过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;
}