easy software

C언어 getchar와 putchar를 이용하여 대소문자 변환하기 본문

C언어/변수와 함수

C언어 getchar와 putchar를 이용하여 대소문자 변환하기

JAVA 웹개발자 2015. 2. 3. 13:53

안녕하세요. 오랜만에 글을 작성해 봅니다.

 

수강신청이 망한 관계로 정신이 조금 없네요.

 

이번 시간에는 문자 단위 입/출력 함수인 getchar와 putchar함수에 대해 알아보겠습니다.

 

 

 

int putchar(int c);

 

putchar함수는 위와같이 정의되어 있습니다.

 

오류가 발생하면 EOF라는 상수값 -1을 반환하며, 모니터로 문자를 출력하는 함수입니다.

 

 

 

int getchar(void);

 

getchar함수는 위와같이 정의되어 있습니다.

 

오류가 발생하거나 파일의 끝에 도달하는 경우에 EOF라는 상수값 -1을 반환하며,

 

키보드로부터 문자를 입력받는 함수입니다.

 

그리고 키보드로부터 ctrl+z를 입력받게되면 EOF값을 반환하게 됩니다.

 

즉. ctrl+z를 파일의 끝이라고 정의해 놓은 겁니다.

 

 

 

* 파일의 끝이란?

 

언제일지 모르나 다음에 기회가 되면, 파일 입출력 부분을 소개해 드릴겁니다.

 

그때 자세히 말씀드릴텐데, 간단히 먼저 설명드리자면

 

파일안에 저장되어있는 문자들을 계속 꺼내오다보면 더이상 꺼내올 문자가 없게됩니다.

 

이때를 파일의 끝이라고 표현합니다.

 

 

 

그럼 간단하게 문자 입/출력 함수를 알아보았으니 예제를 해보도록 하겠습니다.

 

이름은 대소문자 변환 프로그램입니다.

 

1. 키보드로 문자 하나를 입력 받는다.

 

2. 문자의 범위는 A(a) 부터 Z(z)까지다.

 

3. 대문자는 소문자로, 소문자는 대문자로 변환해준다.

 

4. 알파벳 범위가 아닌 다른 문자가 입력되면 경고 메시지를 출력해준다.

 

 

#include <stdio.h>

 

int main(){

 

     char ch = 0;

     printf("문자 입력: ");
     ch = getchar();//문자하나를 키보드로 입력받아 ch에 저장

 

     //대문자를 입력하면 소문자로 변환하여 모니터로 출력(아스키 코드 표 참고)
     if (ch > 64 && ch < 91)
          putchar(ch + 32);
     //소문자를 입력하면 대문자로 변환하여 모니터로 출력(아스키 코드 표 참고)
     else if (ch>96 && ch < 123)
          putchar(ch - 32);
     else
          printf("잘못된 입력!");

 

     printf("\n");

     return 0;
}

 

코드의 조건문에는 아스키 코드번호가 포함되어 있습니다.

 

제 블로그에서 아스키를 검색하면 아스키 코드표를 확인하실 수 있습니다.

Comments