我想使用子字符串來計算特定單詞輸入的次數。我一直在玩我的代碼,看看我是否可以使它工作但我只是不明白!使用子字符串來統計單詞出現的次數
我的代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main(int argc, char *argv[])
{
int i=0;
char buf[1026]={'\0'};
char *p="#EOF\n";
char *t;
while (strcmp(buf, p) != 0)
{
fgets(buf, 1025, stdin);
t=strtok(buf," , - \n");
while(t != NULL)
{
if(strncmp(t, argv[1], strlen(argv[1])) == 0)
{
i++;
}
}
}
printf("%d\n", i);
return 0;
}
有沒有錯誤,但i
值始終是0。我不知道如何確保它保持它發現這個詞一次之後計數。我試過sizeof(t) < j
,但那不行。
你可能想'strlen',而不是'sizeof'。 – cnicutar
@cnicutar固定的,謝謝! –
這對我來說似乎非常低效。爲什麼要將字符串解析爲子字符串?所有你需要做的是找到你的分隔符並計算結果。沒有理由浪費修改字符串的週期。使用類似'strpbrk()'的東西來查找下一個出現的幾個字符或者編寫你自己的幫助函數。 –