幻影的频率

时间:2015-12-07 18:35:20

标签: c++

我尝试解决问题但无法找到解决方案。问题在于文本中词汇的词典排序,以及显示每个词的出现频率。我成功地安排了这些话,而且我对这个练习的第二部分没有任何想法。这是我的代码:

void lexigografic(char *s)
{
 char *p, cuv[20][20], aux[20];
 int i=0, n, j;
 p=strtok(s, " ");


while(p)
{
    i++;

    strcpy(cuv[i], p);
    p=strtok(NULL, " ");
}
n=i;
for(i=1; i<n; i++)
    for(j=i+1; j<=n; j++)
    if(strcmp(cuv[i], cuv[j])>0)
{
    strcpy(aux, cuv[i]);
    strcpy(cuv[i], cuv[j]);
    strcpy(cuv[j], aux);

}


for(i=1; i<=n; i++)
{
     if(cuv[i] == cuv[j] )
     fout<<cuv[i]<<"***";

     fout<<endl;
}

}

1 个答案:

答案 0 :(得分:1)

只需使用std::map即可。它会保持按键排序。这是一段代码:

std::map<std::string, int> m;  // definition of map
std::string = "word";  // sample word

m[s] += 1;  // increments word count of string; inserts it if it doesn't exist.