c语言 将输入的字符串按照空格分割计算其中单词出现的个数 比如输入
i love c love c
输出:
i 出现 1次
love 出现 2次
c出现 2次
strtok函数
char str[] ="i love c love c";
const char * split = " ";
char * p;
p = strtok (str,split);
while(p!=NULL) {
printf ("%s\n",p);
p = strtok(NULL,split);
}
这么循环
说下我的逻辑,不一定最优
先弄个结构体struct里面有一个char*和一个int
再建个struct的数组
在每次循环对比之前获得的struct数组中是否含有相同的字符串
有就计数器+1
没有就在数组中为null的地方加上一个成员为这个字符串和计数为1的struct
循环结束时遍历struct数组
好久没写C了,怕给你的代码有bug,就写思路把
追问strok函数我知道 我能把字符串按照空格分割成一组组词语 但是怎么计数啊?
追答用struct,字符串和数字存在一起,我上面提到了,初始创建的时候赋值1,每遇到相同的就+1.比如
char *str = "i love c love c";