我的程序从输入中扫描并打印所有使用的大写字母。
我也在尝试在程序结束时从标准输入打印原始输入。
但是当我使用 printf 时,它似乎跳过了输入表达式的第一部分,在我的字符数组中打印了剩余的东西。请帮我看看问题出在哪里。-代码中的注释-
#include <stdio.h>
int main(void){
char input[81];
int letters[91];
int i;
//initialize arrays input and letters
for (i = 0; i < 90; i++) letters[i] = 2;
for (i = 0 ; i < 80; i++) input[i] = 'a';
i = 0;
//reads into input array until EOF
while((scanf("%c",input)!= EOF)){
//checks input for characters A-Z
if((input[i]>= 'A' && input[i]<= 'Z'))
letters[input[i]] = 1;
}
//prints capital letters from input that occur at least once
for(i = 'A'; i < 'Z'; i++){
if (letters[i]==1)
printf("%c", i);} // this output works fine, the scan worked??
//print blank line
printf("\n\n");
// print input
printf("%s\n", input); //This is where the incorrect output comes from.
return 0;}
我原来的输入会改变吗?为什么?我的输入一开始没有被正确扫描吗?请尽快回复!