我正在尝试创建一个程序,用户将不断给出单独的单词,程序将计算所有不同的单词。 例如:用户给出:" 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;
}
`
答案 0 :(得分:0)
不是将单词放在一个巨大的字符数组中,而是应该创建一个字符数组数组,然后每次检查整个数组是否有重复数据。这样效率会相对较低,但它会起作用。
答案 1 :(得分:0)
每次阅读单词时,将其转换为唯一的32位哈希。搜索排序的整数数组比进行1000次字符串比较更快更容易。