字符串的統計字符串

#include <iostream>
#include <string>
using namespace std;
string getCountString(string& str)
{
    if(str.size() == 0)
        return str;
    string res = "";
    res += str[0];
    int num = 1;
    for(int i = 1; i < str.size(); ++i)
    {
        if(str[i] != str[i - 1])
        {
            res += "_" + to_string(num) + "_" + str[i];
            num = 1;
        }
        else
            ++num;
    }
    return res + "_" + to_string(num);
}
char getCharAt(string& cstr, int index)
{
    if(cstr.size() == 0)
        return 0;
    bool stage = true;
    char cur = 0;
    int num = 0;
    int sum = 0;
    for(int i = 0; i < cstr.size(); ++i)
    {
        if(cstr[i] == '_')
            stage = !stage;
        else if(stage)
        {
            sum += num;
            if(sum > index)
                return cur;
            cur = cstr[i];
            num = 0;
        } else {
            num = num * 10 + cstr[i] - '0';
        }
    }
    return sum + num > index ? cur : 0;
}
int main()
{
    string str = "aaabbadddffc";
    cout << getCountString(str) << endl;
    str = "a_100_b_2_c_4";
    cout << getCharAt(str, 105) << endl;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章