#include < stdio.h >
#include < ctype.h >
int main() {
puts("Ctrl+C to exit");
for(;;) putchar(toupper(getchar()));
}
P.S: Несмотря на простоту благодаря буферизации можно спокойно вводить хоть предложение - оно будет преобразовано как предложение.
По поводу вопросов -
1 - Никак. putchar выводит один символ. Для вывода строки есть н-р puts или printf("%c\n", c); ну или putchar(символ); putchar('\n');
2 - это символ перевода строки - 20, т. к. Вы не проверяете какой символ вообще поступил и стоит ли от него отнимать 20. Кст лучше сделать 'a'-'A' (т. е. c -= 'a'-'A' );
Попробуйте
char c = '\n'; c = c - 20; putchar(c); //Будет этот-же символ, что у Вас.
