如何计算C ++中字符串中的字符串出现次数

时间:2011-08-29 07:01:33

标签: c++ c

实施例    我输入“他,她,她,她”         输出“他2                      她3“

2 个答案:

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