如何计算C语言中的唯一字数
我需要计算用户从键盘输入的每个唯一单词的数量。我应该使用如何计算C语言中的唯一字数,c,C,我需要计算用户从键盘输入的每个唯一单词的数量。我应该使用scanf或fgets来存储句子吗 我尝试过使用fgets,但编译器抛出了一个错误。您可以选择scanf在C程序的变量中存储一个句子。使用下面的代码,您可以存储50个字符 #include <stdio.h> #include <string.h> #include <stdlib.h> int main(){ char a[50]; printf("Read a string
scanf
或fgets
来存储句子吗
我尝试过使用
fgets
,但编译器抛出了一个错误。您可以选择scanf
在C
程序的变量中存储一个句子。使用下面的代码,您可以存储50个字符
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
char a[50];
printf("Read a string:\n");
scanf("%[^\n]", a);
printf("\nThe Sentence is; %s", a);
return 0;
}
#包括
#包括
#包括
int main(){
chara[50];
printf(“读取字符串:\n”);
scanf(“%[^\n]”,a);
printf(“\n句子是;%s”,a);
返回0;
}
fgets
这是阅读句子的最佳方式,如果选择此路径,则需要使用strtok
从句子中推断单个单词
我建议您使用fgets
,strtok
和strstrstr
。我想这是最好的办法
strok
和strstrstr
在strimg.h
标题中定义。scanf(“%[^\n]s”,a)代码>您不需要s
Fyi,fflush(stdin)代码>调用未定义的行为fflush
专门用于为wriitng打开的文件流,而stdin
则不是。不管是什么短信让你这么做。。烧掉它。scanf(“%[^\n]”,a)代码>比get()
更糟糕。它甚至不读取stdin
中的整行内容(保留'\n'
),并且如果该行以'\n'
开头,则该行将毫无用处。要计算唯一单词的数量,无需保存任何单词。Jack Empire,除了计算单词外,还需要保存单词吗?@Restore在不存储第一个单词的情况下,如何判断第三个单词是否重复?“我已尝试使用FGET,编译器抛出错误”表示您的用法不正确。如果你想知道如何使用fgets
,可以问这样一个问题:“我试过像这样使用fgets
[这里有完整的示例],但我遇到了这个编译器错误[这里有完整的错误消息]。”这个问题可能可以回答,你很可能会从答案中学到一些有用的东西。“我试过X,但我做不好,所以我下一步该怎么做?”这不是一个任何人都会费心回答的问题。即使他们这样做了,您仍然不知道如何使用fgets
。此外,编译器错误消息通常会让您了解错误所在。你至少应该试着理解消息告诉你的是什么。strok()
不是好建议。通常不要使用strtok()
,因为是静态的
变量。