반응형
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행 나머지는 그냥 출력
반응형
'프로그래밍 > C programming' 카테고리의 다른 글
c언어 1에서 1000사이 정수중 수를 구성한 개개의 수가 연속적으로 되어있는 수를 찾는 프로그램(for문, if~else문, break) (0) | 2020.06.16 |
---|---|
c언어 1~1000사이에 있는 수에 대해 암스트롱 수를 구하는 프로그램(각 자리 수에 세제곱의 합이 그 자신과 같아지는 수) (0) | 2020.06.16 |
c언어 러시아 농부 곱셉 알고리즘, 농부곱셈법, 이집트곱셈법 (0) | 2020.06.11 |
C언어 키보드로 입력된 문자열의 문자 수, 단어 수, 줄 수를 계산 getchar() 함수 (0) | 2020.06.08 |
C언어 문장을 입력 받아 공백문자 개수 세고, 밑줄로 변환하는 프로그램 getchar(), putchar() (0) | 2020.06.05 |
댓글