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

问题描述 投票:-1回答: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

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

Edit进行了建议的更改,但仍无法正常工作enter image description here

enter image description here

c arrays for-loop char scanf
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.