본문 바로가기
c언어/프로그래머스

[프로그래머스] 대소문자 바꿔서 출력하기(c언어)

by ilp 2023. 12. 25.
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/181949

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr



#include <stdio.h>
#define LEN_INPUT 30

int main(void) {
    char s1[LEN_INPUT];
    scanf("%s", s1);
    
    for(int i=0;i<LEN_INPUT;i++){
        if(s1[i]>='A'&&s1[i]<='Z'){
            s1[i]+=32;
        }
        else if(s1[i]>='a'&&s1[i]<='z'){
            s1[i]-=32;
        }
    }
    
    printf("%s",s1);

    return 0;
}

문자 배열 s1에 입력받아준다.

LEN_INPUT의 크기만큼 for문을 돌린다.

s1[i]가 대문자인지 소문자인지 판단하고

대문자이면 32를 더하고

소문자이면 32를 뺴준다.

s1을 출력해준다.

아스키 코드를 이용한 것이다.

대문자 'A'와 소문자'a'의 10진수는 32가 차이나는걸 알수 있다.

그래서 입력된 문자가 대문자면 32를 더해서 소문자가 출력되게 하고

소문자이면 32를 빼서 대문자가 출력될 수 있게 했다.

중요

LEN_INPUT 의 값을 잘 설정해주어야 한다.

제한사항을 보면 문자열의 길이가 20이하기때문에

LEN_INPUT의 값은 20이상이어야 한다.

(나는 만약의 상황을 대비하여 제한사항의 값보다 10정도 큰 값으로 설정한다ㅣ 보통)


반응형