字符数组在c中读取3个输入而不是5个输入?

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

标签: c arrays getchar putchar

我的代码在下面给出

#include <stdio.h>
#include <ctype.h>

#define size 5

void main(){

    int i;
    char letter[size];
    for(i=0;i<size;i++)
        letter[i]=getchar();
    for(i=0;i<size;i++)
        putchar(toupper(letter[i]));
}

,输出为:

bitto@HP-ProBook-4430s:~$ gcc test.c
bitto@HP-ProBook-4430s:~$ ./a.out
a
s
d
A
S
D

为什么会这样?它是读取5个字符并将它们转换为大写。

1 个答案:

答案 0 :(得分:3)

正如EOF所说,你输入的任何输入都会输入两个字符作为输入,因为你输入 A 然后输入 C读取为{{ 1}}和a所以这是两个字符,而不是一个字符。