2

我的代码如下

#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 个字符并将它们转换为大写。

4

1 回答 1

3

正如 EOF 所说,您所拥有的任何输入都将采用两个字符作为输入,因为您输入的内容读取为,A所以这是两个字符,而不是一个。EnterCa\n

于 2016-06-30T16:08:56.380 回答