0
我有功能,这应该算多少字符有最长的词,但它计算错误。多少个字符具有最长的单词用C
例如,如果我输入两个词时,第一个比第二个短:“我的名字”节目让我发现,最长的词有2个字符。但是当我输入“命名我的”时,显示结果是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);
}
是'特征码= sPtr-> next'递增的东西吗?我提到它是因为你每循环调用两次。一个在while语句中,一个在循环体中。如果它增加了一些指针,那么你就会走两两个字符。尝试打印当前评估的角色,看看发生了什么。 – Jean 2013-03-17 22:07:19
而不是使用NULL使用'\ 0'(标准) – Mitro 2013-03-17 22:21:14
并看看这个http://stackoverflow.com/questions/15340343/strings-gets-and-do-while – Mitro 2013-03-17 22:22:24