【发布时间】:2013-07-08 08:45:10
【问题描述】:
我有 6 个 const 字符串(每个 5 个字母)
我得到了几个单词的流(在这 6 个单词中)。
我想计算每个单词出现了多少次。
如何在 C 中实现它?
我试过了:
char searchEngineNames[6][5] = { "waze_", "faceb", "fours", "googl",
"fueli", "yello" };
static void foo(const char* res_name, int success, void *context, char *last_modified) {
if (success){
for (int i=0; i<6; i++)
{
char substringFiveChars[6];
strncpy(substringFiveChars, res_name, 5);
char substringFiveChars[6];
substringFiveChars[5] = 0;
if (strcmp(searchEngineNames[i],substringFiveChars) == 0)
{
...
}
..
}
例如对于这个流:
"wooo_","wooo_","faceb","wooo_","google"
我最终会得到:
"wooo_" 3 times
"faceb" 1 times
"google" 1 times
"fours" 0 times
"fuelil" 0 times
"yello" 0 times
【问题讨论】:
-
如果你知道如何实现一个简单的hashmap(而且很容易),你只需将一个字符串作为键,将一个无符号整数作为值。我不确定你到目前为止都尝试了什么。
-
问题我在 C 中没有字符串。只有 char*。那我还得用3d数组?
-
不了解你的编程技能,很难知道如何回答。您熟悉链表以及哈希图的工作原理吗?
-
您需要从您的字符串中获取一个散列并使用此散列来获取您的散列图中的数组中的索引。我不明白为什么是“3d 数组”。
-
你说“我有 6 个 const 字符串(每个 5 个字母)”,但“google”和“fuelil”是 6 个字母的词。另外,你为什么使用 strncpy 和 strcmp 而不是 strncmp?