군대에서_코딩하기_알고리즘_2

신태원·2021년 5월 4일
0

군대에서_코딩하기

목록 보기
3/30
post-thumbnail

오늘의 문제는 공백과 대소문자 구분없이 한 문자열이 입력됐을 때, 대문자는 소문자로 바꾸고 공백은 제거해서, 한 단어로 만들어내는 것이다.

#include<iostream>
#include<stdio.h>

using namespace std;

int main(){
    
    char sentence[101], perfect[101];
    int i, cnt=0;
    
    gets(sentence);
    
    for(i=0; sentence[i]!='\0'; i++){
        if(sentence[i]>=65&&sentence[i]<=90){
            perfect[cnt] = sentence[i] - 'A' + 'a';
            cnt++;
        }
        else if(sentence[i]>=97&&sentence[i]<=122){
            perfect[cnt] = sentence[i];
            cnt++;
        }
        else{
            continue;
        }
        
    }
    perfect[cnt] = '\0';
    
    cout<<perfect;
}

구글을 뒤지다가, 공백포함 문자열 받는것을 'getline'을 이용해서 했는데, 그냥 gets를 써버리면, 따로 인자 설정 필요없이 간편하게 할 수 있다.
또한 대문자를 소문자로 바꿀 때, 'A'를 빼주고 'a'를 다시 더해주는 방법도 있지만, 그냥 32를 더해주는 방법도 있다.
그리고 마지막에 꼭 널문자('\0') 를 넣어줘야 이상한 기호가 안찍힌다!

profile
일단 배우는거만 정리해보자 차근차근,,

0개의 댓글