每日一题:华为初级题库——字符个数统计

  <题目要求>

  输入一行字符串,统计并输出ASCII(0-127)字符个数,不在范围的数据不统计。

  思路:方法一:先将字符串进行排序,统计总的个数len,再遍历字符串,比较当前位字符和后一位字符是否相等,若相等则表明重复,总个数len递减;方法二:建立一个数组c[128],以字符的ASCII码值做索引,用数组的值来统计字符出现的个数。

  易错点:ASCII码字包括空格,所以输入和存储字符的时候,要用getline。

这个易错点,不止一次出现错误了,要注意!!!!!

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string a;
    int c[128]={0};
    int len=0;
    getline(cin,a);
    for(int i=0;a[i]!='\0';i++)
    {
        if(a[i]>=0&&a[i]<=127)
        {
            int t=(int)a[i];
            c[t]++;
        }
    }
    for(int j=0;j<128;j++)
    {
        if(c[j]!=0)
            len++;
    }
    cout <<len<< endl;
    return 0;
}

 

posted on 2014-06-05 10:24  Sophie@原本  阅读(319)  评论(0编辑  收藏  举报