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;
}

 

posted @ 2020-02-11 14:16  jasmineTang  阅读(168)  评论(0)    收藏  举报