由于某种原因输入了最后一个字母+ 1

我正在练习打印从用户那里获取的3个字母。前两个字母可以很好地结束,但是最后一个字母总是由于某种原因而在用户输入内容之后出现的字母(我尝试了几种不同的输入组合,并且结果始终相同):

#include <stdio.h>

int main(){

    char userChar[3];
    int i;

    for (i = 1; i <= 3; i++){
        printf("Enter letter %d\n",i);
        scanf(" %c",&userChar[i]);
    }

    printf("%c %c %c",userChar[1],userChar[2],userChar[3]);

    return 0;
}

输入为:abc 输出为:abd

我搞砸了什么?感谢您的帮助!

编辑进行了建议的更改,但仍然无法正常工作

由于某种原因输入了最后一个字母+ 1

由于某种原因输入了最后一个字母+ 1

lihonglian26 回答:由于某种原因输入了最后一个字母+ 1

我将其发布为答案,以澄清修订内容

#include <stdio.h>

int main(){

    char userChar[3];
    int i;

    for (i = 0; i < 3; i++){                                    // the loop range
        printf("Enter letter %d\n",i + 1);                     // for human use
        scanf(" %c",&userChar[i]);
    }
    printf("%c %c %c",userChar[0],userChar[1],userChar[2]);  // the array indexing

    return 0;
}

计划会议

Enter letter 1
a
Enter letter 2
b
Enter letter 3
c
a b c
本文链接:https://www.f2er.com/3143271.html

大家都在问