• 回答数

    3

  • 浏览数

    174

爱啃狼的木头
首页 > 英语培训 > 统计英文字符

3个回答 默认排序
  • 默认排序
  • 按时间排序

木木夕-琪

已采纳

这个简单啊~~啦啦啦~~~等下~~给你写

统计英文字符

139 评论(11)

sylviali1109

我的想法是先构建好一个struct实体,承装字母的大写形式、小写形式以及它出现的次数

然后建立一个26个字母的数组,为了方便,我从1~26标号,0位空出。

读入字符串后与字母数组的内容对比,语气大写或小写相同时则次数加1.

代码在下面。

另外,我觉得这个题目还可以使用STL的map。

#include 

#include 

using namespace std;

struct Pair

{

char capital;

char lowercase;

int times;

};

#define SIZE 27

int main()

{

Pair letters[SIZE];

int ASC_capital = 65;

int ASC_lowercase = 97;

for(int i = 1; i < SIZE; i++)

{

letters[i].capital = ASC_capital++;

letters[i].lowercase = ASC_lowercase++;

letters[i].times = 0;

}

string test;

cin >> test;

int len;

len = test.size();

int k = 0;

while(k < len)

{

if((test[k] >= 65 && test[k] <= 90) || (test[k] >= 97 && test[k] <= 122))

{

for(int j = 1; j < SIZE; j++)

{

if((test[k] == letters[j].capital) || (test[k] == letters[j].lowercase))

letters[j].times++;

}

}

else

break;

k++;

}

int count = 1;

for(int j = 1; j < SIZE; j++)

{

cout << letters[j].capital << "/" << letters[j].lowercase << ": " << letters[j].times << " ";

if(count == 10)

{

cout << endl;

count = 1;

}

else

++count;

}

cout << endl << endl;

return 0;

}

337 评论(12)

刘思韵2522

#include int main(){ char c; int letter = 0,  space = 0, digital = 0,  others = 0; printf("输入字符:"); while ((c=getchar()) != '\n')/*;*/ {//<==== while条件后多一个分号 if (c >= 'a'&&c<='z' || c>='A'&&c <= 'Z') letter++; else if(c == ' ') space++; else if(c >= '0'&& c<= '9') digital++; else others++; } printf("统计结果:\n英文结果:%d\n空格结果:%d\n数字结果%d\n其他结果:%d\n", letter, space, digital, others); return 0;}

122 评论(8)

相关问答