** strtok関数はstring.hライブラリの関数です。
プロトタイプ:char * strtok(char s、const char delim);
strtok()は、文字列をフラグメントに分割するために使用されます。パラメータsは分割される文字列を指し、パラメータdelimは分割された文字列に含まれるすべての文字を指します。strtok()は、パラメーターdelimに含まれている分割文字をパラメーターsのストリング内で検出すると、その文字を¥0文字に変更します。最初の呼び出しでのみ、strtok()にパラメーターsの文字列を指定する必要があります。その後の呼び出しでは、パラメーターsをNULLに設定します。呼び出しが成功するたびに、セグメントへのポインタが返されます。分割文字列がない場合は、NULLを返します。delimに含まれるすべてのキャラクターがフィルターで除外され、フィルターで除外された場所が分割ノードとして設定されます。
例:単語の統計
問題の説明:
文字の行を入力し、関数プログラミングを使用して単語の数を数えます。
注:スペースで区切られた文字列は単語と見なされます。たとえば、「I'm」は単語と見なされ
ます単語数をカウントする関数プロトタイプは次のとおりです:int CountWords(char str []);
#include<stdio.h>
#include<string.h>
int CountWords(char str[]){
int sum=0;
char *token;
token=strtok(str," ");
while(token!=NULL){
sum++;
token=strtok(NULL," ");
}
return sum;
}
int main(){
char str[20];
gets(str);
printf("%d",CountWords(str));
return 0;
}