본문 바로가기
프로그래밍/C programming

C언어 알파벳을 입력받아 대소문자 변환 (소문자는 대문자로, 대문자는 소문자로 나머지는 그대로) getchar(), putchar()

by 졸린이 2020. 6. 5.
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#define CONVERT ('a' - 'A')
//a는 97 A는 65 CONVERT는 32
 
void main() {
    int ch;
 
    while ((ch = getchar()) != EOF) {
        if ('A' <= ch && ch <= 'Z')
            putchar(ch + CONVERT);
        else if ('a' <= ch && ch <= 'z')
            putchar(ch - CONVERT);
        else
            putchar(ch);
    }
}
cs

8행 getchar()로 문자를 입력받아 int형식 ch 에 집어넣고 EOF(ctrl + Z)가 아니면 계속 반복하는 while()문 

9~10행 ch의 범위가 A~Z사이에 있으면 대문자이므로 CONVERT를 더해주면 소문자로 변환된다.

(ASKII 코드로 a는 97 A는 65이므로 32를 더하면 소문자가 된다.)

11~12행 반대로 범위가 a~z사이에 있으면 대문자보다 32값이 더 큰것 이므로 32(CONVERT값)를 빼주면 대분자로 변환된다.

14행 나머지는 그냥 출력

 

반응형

댓글