기타등등/알고리즘 기록

[C++] 영어 단어 복구(공백제거, 대소문자)

CodeJB 2021. 6. 16. 19:33

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

int main() {
    char str[101], copy[101];// \0까지 저장
    int i,p =0;
    //scanf("%s",str); 공백 입력 못받음
    gets(str);
    
    for(i = 0; str[i] != '\0'; i++){
        if(str[i] != ' '){
            if(str[i] >=65 && str[i] <= 90)
            {
                copy[p++] = str[i] + 32;
            }else copy[p++] = str[i];
        }
    }
    copy[p] = '\0';
    printf("%s",copy);
    return 0;
}

성찰

  • 공백 입력에 대한 문제는 gets함수로 대체한다. scanf는 공백입력을 못받는다. 그리고 \0저장을 위해 배열크기 하나 크게 선언하자
  • 배열을 copy해야 하는 경우에는 꼭 index 변수를 하나 새로 만들어주자(i를 재활용하는 실수를 범한다.)

'기타등등 > 알고리즘 기록' 카테고리의 다른 글

[C++]약수의 개수  (0) 2021.06.18
[C++] 올바른 괄호  (0) 2021.06.16
[C++] 나이 계산(문자열 컨트롤)  (0) 2021.06.16
[C++] 나이차이  (0) 2021.06.16
[Unity C#] 문자열 뒤집기  (0) 2021.03.30