C++编程:统计键盘输入的一串英文字符中每种英文字符的个数.

问题描述:

C++编程:统计键盘输入的一串英文字符中每种英文字符的个数.
要求:(1)使用数组
(2)相同英文字符的大小写形式视为同一种统计对象
(3)遇到非英文字符时统计终止
(4)按每行10个数据输出
1个回答 分类:综合 2014-10-30

问题解答:

我来补答
我的想法是先构建好一个struct实体,承装字母的大写形式、小写形式以及它出现的次数
然后建立一个26个字母的数组,为了方便,我从1~26标号,0位空出.
读入字符串后与字母数组的内容对比,语气大写或小写相同时则次数加1.
代码在下面.
另外,我觉得这个题目还可以使用STL的map.
#include <iostream>
#include <string>
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;
  
}
 
 
展开全文阅读
剩余:2000
上一页:....详细步骤
下一页:望能尽快解答