部分文字列を使用して、特定の単語が入力された回数をカウントしたいと考えています。コードを少しいじって、動作させることができるかどうかを確認しましたが、うまくいきません!
私のコードは次のとおりです。
#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 です。単語を 1 回見つけた後、カウントを継続する方法がわかりません。試しsizeof(t) < j
ましたが、うまくいきません。