#include #include main() { char s[10000]; int n;/* 単語数 */ int i; /* 目的文字列を配列 s に格納する。プログラム実行時に入力する時は strcpy(...); の代わりに gets( s ); とする */ strcpy( s, "When I was young I'd listen to the radio." ); i=0; /* 文字列を調べる位置を最初の位置にする */ 単語数を 0 に初期化する while( 文字列が終わりに達していない ){ if( i番目の文字がアルファベットである ){ if( 最初の文字であるか、(i-1) 番目の文字がアルファベットでない){ 単語数を1増やす } } 次の文字にする。 } printf("String=\"%s\"\n", s ); printf("Word count=%d\n", n ); } /* 1文字につき2回ずつアルファベットであったかどうかを調べておいるが、 i-1番目の文字はすでに前の処理で調べているはずなので、その結果を 覚えておくと、余分にしらべる必要がない。 (たとえば 変数宣言 int a; をつけて、 アルファベット であれば a=1; そうでなければ a=0; とする。この場合一番最初の文字の扱いと次の文字 の処理との連係に注意が必要である。 ) */