编程实现输入一串英文,统计其中各单词出现的个数(不区分大小写字母),以“000”作为字符串输入结束标志,例如:
Twinkle twinkle little star 000(回车)
twinkle little star
2 1 1
这个是题 下面是我自己写的一段
#include <stdio.h>
#include <string.h>
void main()
{
char str[248];
char *word1;
char *word2[20][20];
char *o = "000";
char *buf;
char delim[] = " ";
int i=0,j;
int length;
gets_s(str);
length = strlen(str);
word1 = strtok_s(str, delim, &buf);
while (word1 != NULL)
{
if (word1 == o)
break;
for (j = 0; j < 20; j++)
{
if (word2[j][20] != word1)
{
word2[i][20] = word1;
}
}
word1 = strtok_s(NULL, delim, &buf);
puts(word2[i][20]);
i++;
}
}
思路是把写入的str切割成单独的单词 然后存入word1 再用遍历word2判断是否重复 不重复则录入 重复则用一个数组来记录数 最后输出word2和数组就可以了
但是目前遇到两个问题 一个是没办法判断000为终止符 一个是没法判断word2里有word1的词 运行的话重复的单词还是会录入word2
求大神帮忙完善一下这段程序 刚C语言入门 不会用基础外的高阶语法 所以希望回答的人答案别是复制的 写map之类的也不用回答了 看不懂
网上复制的就别来了 这段错误代码第一段是循环是100次的字符串输入 石乐志