C++-STL(16)-string-char-字符串统计

给一个字符串,统计每个字符出现的次数。
比如“aabbbadddff” 输出a_2_b_3_a_1_d_3_f_2

思路:遍历一遍,当[i]==[i-1]时,num++;当不等时 组合字符,num=1;
编码:  string->char   
             string str = "abc";
             string res = to_string(str[0]);// 返回的是 char 类型的ASCII 如果是‘a’ 此处返回的是97不是'a'
           
 string sbu1 = str.substr(1,1);//substr(start,len)

 

string concat(string s1, string s2, string s3)
{
    string re= s1 + "_" + s2 + (s3 == ""? s3 : "_" + s3);
    return re;
}
string getCountString(string str)
{
    if (str == "")
    {
        return "";
    }
    char ch=str[0];                    //'a'
    string res = str.substr(0,1);           //to_string()方法会返回char的ASCII '97'
    int m_num = 1;
    for (int i = 1; i < str.length(); i++)
    {
        if (str[i] != str[i - 1])//前后不等
        {
            res = concat(res,to_string(m_num), str.substr(i,1));
            m_num = 1;
        }
        else
        {
            m_num++;
        }
    }

    return concat(res,to_string(m_num),"");
}

void getCountString_main()
{
    cout << "*****getCountString_main**********" << endl;
    string strinput="aaabbaddddffc";
    string  str=getCountString(strinput);
    cout << str   << endl;
}

 

原文链接: https://www.cnblogs.com/jasmineTang/p/14369275.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++-STL(16)-string-char-字符串统计

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/328580

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午4:46
下一篇 2023年3月1日 下午4:46

相关推荐