我要一个c语言代码以#结束的统计单词
时间: 2024-03-24 07:39:37 浏览: 9
好的,请看下面的代码。这是一个基于C语言的实现,用于统计一篇文章里不同单词的总数,以#作为输入结束符号。
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1005
int main() {
char str[MAX_LEN];
int cnt = 0;
int word[MAX_LEN] = {0};
while (fgets(str, MAX_LEN, stdin)) {
if (str[0] == '#') break;
int len = strlen(str);
if (str[len-1] == '\n') str[len-1] = '\0';
char *p = strtok(str, " ");
while (p != NULL) {
int flag = 1;
for (int i = 0; i < cnt; i++) {
if (strcmp(p, str+word[i]) == 0) {
flag = 0;
break;
}
}
if (flag) {
word[cnt++] = p - str;
}
p = strtok(NULL, " ");
}
}
printf("%d\n", cnt);
return 0;
}
```
这个程序使用了 `fgets()` 函数从标准输入读入一行字符串,然后使用 `strtok()` 函数将字符串按照空格分割成若干个单词。对于每一个单词,程序将其与之前出现过的单词进行比较,如果不同则将其记录下来。最后,程序输出不同单词的总数。
请注意,这个程序假设输入的每一篇小文章都不超过1005个字符,每个单词不超过100个字符。如果实际情况不符合这个假设,需要对程序进行相应的修改。