统计字符出现的次数

第一个只出现一次的字符:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”则输出b,区分大小写。

可以利用一个数组来存放每个字符出现的次数,要统计的字符(字符对应的ascii数值)是数组的索引值,字符出现的次数是值。

 

char MainWindow::findOnlyOneChar(char *data)
{
    if(data==nullptr)
    {
        return '\0';
    }

    uint8_t table[122];//存储每一个字符的ascii值,大小写字母ascii值范围65-122
    memset(table,0,122*sizeof(uint8_t));

    char* temp=data;

    while(*temp!='\0')
    {
        table[*temp]++;
        temp++;
    }

    temp=data;

    while(*temp!='\0')
    {
        if(table[*temp]==1)
        {
            return *temp;
        }

        temp++;
    }

    return '\0';
}

 

 std::cout<<findOnlyOneChar(("abaccdeff"))<<std::endl;//输出 b

 

posted @ 2016-06-11 10:04  ike_li  阅读(611)  评论(0)    收藏  举报