countWords
以下のプログラムで関数がどのように機能するかを理解するために、いくつかの助けが必要です。
スティーブン・コチャンが書いた「Programming in C」ですべて説明されていますが、関数の「lookingForWord」と「++ wordCount」に関しては、どのように機能するのかわかりませんでしたcountWords
。
#include <stdio.h>
#include <stdbool.h>
//function to determine if a character is alphabetic
bool alphabetic (const char c)
{
if ( (c >= 'a' && c <= 'z') || ( c >= 'A' && c <= 'Z'))
return true;
else
return false;
}
// function to count the number of words in a string
int countWords ( const char string[])
{
int i, wordCount = 0;
bool lookingForWord = true, alphabetic ( const char c);
for ( i = 0; string[i] != '\0'; ++i)
if (alphabetic(string[i]) )
{
if ( lookingForWord )
{
++wordCount;
lookingForWord = false;
}
}
else
lookingForWord = true;
return wordCount;
}
int main ( void)
{
const char text1[] = {"Well, here goes."};
const char text2[] = { "And here we go... again"};
int countWords (const char string[]);
printf( " %s - words = %i\n", text1, countWords (text1));
printf( " %s - words = %i\n", text2, countWords (text2));
return 0;
}