【发布时间】:2016-03-13 19:27:02
【问题描述】:
while(token != NULL)
{
// for(position = strcspn(str,token); position >= 0;
// position = strcspn(str, token + 1));
// {
// str2[position] = count++;
// }
}
我认为我的代码存在逻辑问题。我试图从用户输入中获取一个字符串并返回每个单词被使用的次数,并且每个单词只返回一次。我认为我的问题在我已注释掉的部分中,但我不完全确定如何修复或更改我的代码。 例如: 输入:你好,我的猫在说你好。 输出:你好 2 我的 1 猫 1 是 1 说 1
【问题讨论】:
-
我确信
str[size] = read_line(str, size);不可能是正确的。您正在将行输入函数的返回值分配给单个char。 OTOH,如果您尝试将返回的指针分配给str,则不能,因为它是一个固定数组。 -
str[size] = ...不正确的另一个原因是您在数组边界之外进行索引。这里最大的合法数组索引是str[size-1]。您是否启用了警告?请张贴Minimal, Complete, and Verifiable example,显示您已尝试过的内容。 -
不,直到您显示所有相关信息,然后才显示字符串输入。
read_line()是什么?有很多关于计算字符串中单词的问题。 -
我已经要求你两次发布
read_line功能,所以我现在放弃了。对于之前的问题,点击问题下方的c标签,然后在右上角附近的SO搜索框中输入词频 -
我认为您需要为数组的每个元素维护一个计数。您已计数为标量整数。然后让 maxCount 说出哪个是最大的 (of the count) 。两者都可以在同一个循环中更新。