一个循环停止单词4字母

时间:2016-05-06 16:30:22

标签: c loops while-loop

当我输入一个包含4个字母的单词时,我会停止循环,但它不会停止。它有什么问题? 这是我的代码:

int main()
{
    char word[10][20];
    int i=0;

    while(strlen(word[i])!=4)
    {
        scanf("%s",&word[i]);
        puts(word[i]);
        i++;
    }
}

1 个答案:

答案 0 :(得分:0)

while(strlen(word[i]) != 4替换为while ((i-1 >= -1) && (strlen(word[i-1]) != 4))

您的版本正在检查尚未输入的当前字词。您读了一个单词,增加了i并计算了i单词的长度,但它还没有到此处,但您想检查输入的最后一个单词的长度,所以使用word[i-1]添加一个检查(!!)以防止越界(例如while ((i-1 >= -1) && strlen(word[i-1]....)