c程序,计算不同单词的数量

时间:2016-04-07 17:51:34

标签: c

我正在尝试创建一个程序,用户将不断给出单独的单词,程序将计算所有不同的单词。 例如:用户给出:" Hello",用户给出:"再见",用户给出:"好",用户给出:"坏" ,用户给出:"再见"。 这是4个不同的词。 我希望它在用户完成单词时计算它们。 这是我写的一些代码,但我无法完成它。我是程序员的新手,这个问题可能看起来很愚蠢但对我来说非常重要。

`

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>


int main(int argc, char *argv[]) {
    int num=0,b=0,h=0,g=0;
    char name[31],text[2000];
    while (num==0){
        printf("give word: \n");
        scanf("%s", name);
        printf("%s\n", name);
        if (strcmp(name,"*fff*")==0){
            num=1;
        }
        else {
            h=h+1;
            b=b+strlen(name);
            strcpy(text,name);


        }
    }

    return 0;
}

`

2 个答案:

答案 0 :(得分:0)

不是将单词放在一个巨大的字符数组中,而是应该创建一个字符数组数组,然后每次检查整个数组是否有重复数据。这样效率会相对较低,但它会起作用。

答案 1 :(得分:0)

每次阅读单词时,将其转换为唯一的32位哈希。搜索排序的整数数组比进行1000次字符串比较更快更容易。