Home > Study > C Language > C task > [ex61] 알파벳 추리기 (10점)

[ex61] 알파벳 추리기 (10점)
Study Language

문제 설명


in 배열에 최대 10글자(널문자 포함 11글자)의 문자열이 입력된다.
이 문자열에서 알파벳 대문자 또는 소문자만 순서대로 모아서 배열 out에 저장하고 그 내용을 인쇄하는 코드를 구현하라.
아래 주어진 입력, 출력 함수는 절대 수정할 수 없다.
(주의) %s 옵션은 문자열을 인쇄하며 끝에 널문자가 있어야 인쇄를 종료한다.
따라서 out 배열에는 선별된 글자들 뒤에 반드시 널문자가 있어야 한다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void main(void)
{
    char in[11];
    char out[11];

    scanf("%s", in);

    // 코드 구현 (필요시 변수 자유롭게 선언하여 사용 가능)


    printf("%s\n", out);
}

입력 예시


dkIWO23JI#

출력 예시


dkIWOJI

정답 코드


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void main(void)
{
    char in[11];
    char out[11];

    scanf("%s", in);

    int i, j = 0;

    for(i = 0; i < sizeof(in)/sizeof(in[0]); i++)
    {
        if(in[i] == '\0')
        {
            out[j] = '\0';
            break;
        }

        if(((in[i] >= 'A') && (in[i] <= 'Z')) || ((in[i] >= 'a') && (in[i] <= 'z')))
        {
            out[j++] = in[i];
        }
    }

    printf("%s\n", out);
}

메모


printf 내부의 \n 습관화 필요