728x90
반응형
문제
현수의 컴퓨터가 바이러스에 걸려 영어단어가 뛰어쓰기와 대소문자가 혼합되어 표현된다.
예를 들면 아름다운 이란 뜻을 가지고 있는 beautiful 단어가 “bE au T I fu L” 과 같이 컴퓨터에 표시되고 있습니다. 위와 같이 에러로 표시되는 영어단어를 원래의 표현대로 공백을 제거하고 소문자화 시켜 출력하는 프로그램을 작성하세요.
▣ 입력설명 첫 줄에 바이러스에 걸린 영어단어가 주어진다.
바이러스에 걸린 영어단어의 길이(공백포함)는 100을 넘지 않는다.
문자사이의 공백은 연속적으로 존재할 수 있습니다. 입력은 알파벳과 공 백만 주어집니다.
▣ 출력설명 첫 줄에 소문자로 된 정상적인 영어단어를 출력한다.
입력예제
bE au T I fu L
출력예제
beautiful
풀이
#include<stdio.h>
using namespace std;
int main(){
// 영어단어 복구
char a[101], b[101];
int i, p=0;
gets(a); //공백읽고 줄바꿈전까지 읽음
for(i=0; a[i]!='\0'; i++){
//알파벳대문자와 소문자인지 확인 res담고
if(a[i]!=' '){
if(a[i]>=65 && a[i]<=90) { //대문자
b[p++]=a[i]+32;
}else{ //대문자에 32만 더하면 소문자
b[p++]=a[i];
}
}
}
b[p]='\0'; //꼭 넣어줘야함
printf("%s\n", b);
return 0;
}
gets('문자열') : 표준입력(stdin)에서 문자열을 입력 받아 저장하는 함수로 공백과 줄바꿈 전까지 문자로 인식한다.
알파벳 대문자(A~Z)는 아스키코드로 65번 부터 90번 까지이고, 소문자(a~z)는 97번에서 122번까지로 대문자 값에 32만 더하면 된다.
반응형
'IT_study > Coding test' 카테고리의 다른 글
[Coding test Basic with c++] 모두의 약수 (0) | 2021.12.21 |
---|---|
[Coding test Basic with c++] 올바른 괄호 (0) | 2021.12.16 |
[Coding test Basic with c++] 숫자만 추출 (0) | 2021.12.16 |
[Coding test Basic with c++] 나이 계산 (0) | 2021.12.16 |
[Coding test Basic with c++] 나이차이 계산 (0) | 2021.12.16 |