输入一行文字,统计其中大写字母,小写字母,空格,数字及其他字符各有多少个

如题所述

#include <windows.h> 
#include <iostream>
#include <string>
#include <ctype.h>
using namespace std;

enum
{
E_UPPER,
E_LOWER,
E_SPACE,
E_DIGITAL,
E_OTHERS,
E_TYPE_COUNT
};

unsigned int chCountArray[E_TYPE_COUNT] = {0};

int main(int argc, char *argv[])
{
char ch;
string str;
getline(cin,str);

int count = 0;
for(count = 0;count < str.length();count++)
{
if(isupper(str[count]))
{
chCountArray[E_UPPER]++;
}
else if(islower(str[count]))
{
chCountArray[E_LOWER]++;
}
else if(isspace(str[count]))
{
chCountArray[E_SPACE]++;
}
else if(isdigit(str[count]))
{
chCountArray[E_DIGITAL]++;
}
else
{
chCountArray[E_OTHERS]++;
}
}

cout<<"upper char count = "<<chCountArray[E_UPPER]<<endl;
cout<<"lower char count = "<<chCountArray[E_LOWER]<<endl;
cout<<"space char count = "<<chCountArray[E_SPACE]<<endl;
cout<<"digital char count = "<<chCountArray[E_DIGITAL]<<endl;
cout<<"others char count = "<<chCountArray[E_OTHERS]<<endl;
system("PAUSE");

return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-19
#include<iostream>
//#include<string>
using namespace std;
#define MAX 50
void main()
{
char str[MAX];
int i=0;
cout<<"请输入一行字符:"<<endl;
char c;
c=getchar();
while(c!='\n')
{
str[i]=c;
i++;
c=getchar();
}
str[i]='\0';

int count1=0,count2=0,count3=0,count4=0,count5=0;
for(i=0;i<strlen(str);i++)
{
if(str[i]<='Z'&&str[i]>='A')
count1++;
else if(str[i]<='z'&&str[i]>='a')
count2++;
else if(str[i]<='9'&&str[i]>='0')
count3++;
else if(str[i]==' ')
count4++;
else
count5++;
}
cout<<"大写字母:"<<count1<<"个"<<endl;
cout<<"小写字母:"<<count2<<"个"<<endl;
cout<<"数字字符:"<<count3<<"个"<<endl;
cout<<"空 格: "<<count4<<"个"<<endl;
cout<<"其他字符:"<<count5<<"个"<<endl;

}
相似回答