实施例 我输入“他,她,她,她” 输出“他2 她3“
答案 0 :(得分:3)
你可以使用std :: map。由于在调用[] -operator时,隐式插入了不存在的键的值和默认值(0表示无符号),您可以对该字符串进行标记,然后执行以下操作:
++map[token];
之后你有一个字符串映射,每个条目都有一对字符串(这是你之前解析过的一个标记)和一个unsigned int表示令牌发生的频率。
答案 1 :(得分:0)
这是我在没有测试的情况下从内存中减去的。 它应该返回包含字符串的所有单词的数量。 这并不是你所需要的。但是你需要自己思考一下。 很容易实现某种类型的集合来保存你自己的结构(字符串+出现的数量)。
INT GetStringsNumber(char *szInput)
{
INT iReturn = 0;
INT iSize = strlen(szInput) - 1;
for(INT i = 0; i <= iSize; i++)
{
if(szInput[i] == ' ')
{
if(i < iSize && szInput[i+1] != ' ')
{
iReturn++;
}
}
}
return iReturn;
}