0
私は、文章中の特定の単語を数えるプログラムを作った。私はコンパイラを介して実行しようとすると、 ''取得は廃止されたと言います。だから私はfgetsとgetsを置き換えましたが、すべての単語と文で0を出力します。どうすればこの問題を解決できますか?getsの代わりにfgets
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
void gotoNextWord();
char str[1026],w[1026];
int slen, wlen, wcount, i, j;
int main()
{
fgets(str, 1026, stdin);
fgets(w, 1026, stdin);
slen = strlen(str);
wlen = strlen(w);
i = j = wcount = 0;
if(w[i] == 0)
{
printf("Please specify a program argument.\n");
}
else
{
while(i<slen)
{
if (str[i] == w[0])
{
for(j=0; j<wlen; j++)
{
if(str[i+j] != w[j])
{
gotoNextWord();
break;
}
}
if(j == wlen)
{
if(isspace(str[i+j])||ispunct(str[i+j])||str[i+j]=='\0')
{
wcount++;
i += j;
}
}
}
else
{
gotoNextWord();
}
i++;
}
printf("%d\n",wcount);
}
return 0;
}
void gotoNextWord()
{
while(isspace(str[i]) == 0 && ispunct(str[i] == 0 && str[i] != '\0'))
i++;
}