티스토리 뷰

 

#include<stdio.h>

int main() {
	char a[101], b[101];
	gets(a);
	int cnt = 0;
	for (int i = 0; a[i] != '\0'; i++) {
		if (a[i] != ' ') {
			if (a[i] >= 65 && a[i] <= 90) b[cnt++] = a[i] + 32;
			else b[cnt++] = a[i];
		}
	}
	b[cnt] = '\0';
	printf("%s", b);
}

이상하게 입력되는 문자열을 제대로 된 문자 형태로 출력하라

공백이 포함되었기 때문에 scanf로 받으면 안된다. 줄바꿈이 나오기 전까지의 한 줄을 입력받을 수 있는 get() 사용

a 캐릭터 배열의 문자를 하나씩 검사한다. 공백이면 무시하고, 대문자는 소문자로 소문자는 그대로 b 배열에 넣는다.

제대로 된 캐릭터 배열 b 의 맨 끝에는 끝을 알리는 \0 값을 추가한다. 그러지 않으면 이상한 값이 추가될 수 있다.

댓글