SPRING :: NOTE

[C] 주어진 문자열에서 대소문자를 변환하여 출력하는 코드 본문

Development Language/C · C++ · MFC

[C] 주어진 문자열에서 대소문자를 변환하여 출력하는 코드

RAYZIE 2023. 4. 25. 15:07
반응형
# 문제 설명
 - 영어 알파벳으로 이루어진 문자열 str이 주어짐
 - 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성

# 제한사항
 - 1 ≤ str의 길이 ≤ 10
 - str은 알파벳으로 이루어진 문자열
#include <stdio.h>
#include <string.h>

int main() {
    char str[11];
    scanf("%s", str);
    int len = strlen(str);
    for (int i = 0; i < len; i++) {
        if ('a' <= str[i] && str[i] <= 'z') { // 소문자일 경우
            putchar(str[i] - 'a' + 'A'); // 대문자로 변환하여 출력
        } else if ('A' <= str[i] && str[i] <= 'Z') { // 대문자일 경우
            putchar(str[i] - 'A' + 'a'); // 소문자로 변환하여 출력
        } else { // 알파벳이 아닐 경우
            putchar(str[i]); // 그대로 출력
        }
    }
    putchar('\n'); // 줄바꿈 문자를 출력합니다.
    return 0;
}

위 코드에서는 입력으로 문자열을 받고, for문을 이용하여 문자열의 각 문자를 하나씩 검사한다.

if문을 이용하여 알파벳인 경우, 대문자를 소문자로, 소문자를 대문자로 변환하여 출력한다.

만약 알파벳이 아닌 경우, 그대로 출력하고, 마지막으로 개행 문자를 출력한다.

이 코드에서도 문자열의 길이가 최대 10이므로, 문자열을 저장하기 위해 11개의 메모리 공간을 할당하였다.

만약 입력으로 주어지는 문자열의 길이가 10보다 크다면, 배열의 크기를 늘려야 한다.

반응형
Comments