単語が最も長い文字の数をカウントする関数がありますが、カウントが間違っています。
たとえば、最初の単語が2番目の単語より短いときに2つの単語を入力すると、「my name」プログラムは、最長の単語が2文字であることを示します。しかし、「name my」と入力すると、結果が4であることが示されます。それはなぜですか。
void max_chars(ListNodePtr sPtr)
{
int i = 0;
int max = 0;
while (sPtr->next != NULL) {
if (isalpha(sPtr->data)) {
i++;
} else {
if (i > max) {
max = i;
}
i = 0;
}
sPtr = sPtr->next;
}
printf(" \n The Longest word have : %d chars \n", max);
}