我的代码如下
#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 个字符并将它们转换为大写。
最佳答案
正如 EOF 所说,您的任何输入都将采用两个字符作为输入,因为您输入 A 然后 Enter ,其中 C
读取作为 a
和 \n
所以这是两个字符,而不是一个。
关于字符数组读取 3 个输入而不是 c 中的 5 个输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38128280/