プログラムを作成しようとしているので、各行の単語を数えます。Cの各行の単語を数える方法
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM_LINES 50
int main()
{
char text[NUM_LINES];
int count = 0;
int nw = 0;
char *token;
char *space = " ";
printf("Enter the text:\n");
while (fgets(text, NUM_LINES, stdin)){
token = strtok(text, space);
while (token != NULL){
if (strlen(token) > 0){
++nw;
}
token = strtok(NULL, space);
}
if (strcmp(text , "e") == 0 || strcmp(text , "e\n") == 0){
break;
}
}
printf("%d words", nw-1);
return 0;
}
は、例えば入力がある場合:
Hello my name is John
I would like to have a snack
I like to play tennis
e
私のプログラムは、私が個別に各ライン上の単語を数えるんか(この場合は17)、総単語を出力します。だから私が望む出力はこの例では「5 7 5」です。
最後の単語の後と ''\ n' 'の前にスペースがあると、コードが正しくカウントされません。 – chux
私はそれをする必要はありません私はちょうどそれが働くようにしたい。私はこれらの種類のエラーについて今は気にしません –