본문 바로가기

C 언어/연습문제

C언어 연습문제33

[문제]

프로그램 사용자로부터 알파벳 문자를 하나 입력 받아서, 입력 받은 문자가 대문자이면 이를 소문자로 변환해서 출력해주고, 입력 받은 문자가 소문자이면 이를 대문자로 변환해서 출력해주는 프로그램을 작성해보자. 단, 문자의 입출력에는 getchar 함수와 putchar 함수를 사용하기로 하자. 그리고 프로그램 사용자가 알파벳 이외의 문자를 입력하는 경우에는 그에 따른 오류 메시지를 간단히 출력하기로 하자.

조건1) ConvCase 함수를 만들어 사용할 것
조건2) 아스키 코드를 변환하는 부분을 최대한 단순하게 만들 것

 

[실행결과]

문자입력: a
A
문자입력: 6
잘못된 입력입니다.

 

[코드]

#include<stdio.h>

int ConvCase(int ch)
{
	int diff = 'a' - 'A';

	if (ch >= 'A' && ch <= 'Z')
		return ch + diff;
	else if (ch >= 'a' && ch <= 'z')
		return ch - diff;
	else
		return -1;
}

int main(void)
{
	int ch;

	printf("문자입력: ");
	ch = getchar();
	ch = ConvCase(ch);

	if (ch == -1)
	{
		puts("잘못된 입력입니다.\n");
		return -1; // 비정상적인 종료를 의미
	}

	putchar(ch);

	return 0;
}

 

<참고>

윤성우의 열혈 C 프로그래밍

'C 언어 > 연습문제' 카테고리의 다른 글

C언어 연습문제35  (0) 2022.03.31
C언어 연습문제34  (0) 2022.03.31
C언어 연습문제32  (0) 2022.03.31
C언어 연습문제31  (0) 2022.03.25
C언어 연습문제30  (0) 2022.03.25