c++的题目:输入一行字符,分别统计出其中英文字母、空格、数字、和其他字符的个数。

如题所述

只要做一个循环,求每一个字符的ASCII码,然后进行比较便可以得出其的总数
char *str1[]="abcde 123456 6/\{}"
int a[4]={0};
char temp_data;
unsigned char temp_data;
int i;
for(i=0;i<strlen(str1);i++)
{
temp_data=str1[i];
if(temp_data>=0x30 &&temp_data<=39) a[0]++;
else
if((temp_data>=0x41 &&temp_data<=5a)||(temp_data>=0x61 &&temp_data<=7a)) a[1]++;
else
if(temp_data==0x20) a[2]++;
else a[3]==;
}
for(i=0;i<4;i++)
{
printf("%d",a[i]);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-01
#include <iostream>
using namespace std;
#include <stdio.h>
int main(){
char x;
int digi=0,sp=0,letter=0,other=0;
while ( (x=cin.get()) != '\n'){
if (x>='0' && x <='9') digi++;
else if (x>='a' && x <='z') letter++;
else if (x>='A' && x <='Z') letter++;
else if (x == ' ') sp++;
else other++;
}
printf("letter: %d, space: %d, digi: %d, other: %d\n",letter,sp,digi,other);

return 0;
}本回答被提问者采纳
相似回答