문제 설명
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 습관화 필요