반응형
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정도 큰 값으로 설정한다ㅣ 보통)
끝
반응형
'c언어 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 문자열 돌리기(c언어) (0) | 2024.02.02 |
|---|---|
| [프로그래머스] 문자열 반복해서 출력하기(c언어) (0) | 2023.12.25 |
| [프로그래머스] 특수문자 출력하기(c언어) (0) | 2023.12.25 |
| [프로그래머스] 덧셈식 출력하기(c언어) (0) | 2023.12.24 |
| [프로그래머스] 문자열 붙여서 출력하기(c언어) (0) | 2023.12.24 |