본문 바로가기

코딩/c언어

[C언어]키보드로부터 문자를 입력받아 대문자로 출력하는 프로그램

키보드로부터 문자를 입력받아 대문자로 출력하는 프로그램 작성 계획

 

<2013년 9월 23일까지 제출해야하는 과제로 인해 작성하게 됨>

 

1. 영어문자에 한함

2. 소문자를 입력하면 대문자로 출력

3. 대문자를 입력하면 입력문자 그대로 출력

4. 한글 등 영어외 다른 문자를 넣으면 오류 출력

5. 변환이 끝나고 다시 작업을 재개할 것인지 'y 또는 n'로 묻는 문구 출력

6. 대문자인 Y와 N도 인식해야함

7. Y, y, N, n외 문자 입력시 다시 입력하라는 문구 출력

8. Y 또는 y입력시 작업 재개하며 N 또는 n입력시 작업 종료문구 출력후 종료

 

 

 

사용된 함수 정리

 

1. printf : 문자열 및 값 출력하기 위해 사용

2. getchar : 키보드로부터 문자 받기 위해 사용

3. fflush : getchar에서 enter도 인식하기 때문에 enter를 인식하지 못하도록 하기위해 사용

4. if : 여러 조건들을 처리하기 위해 사용

5. do-while : 작업을 재개하기 위해 사용

 

 

 

코딩 및 작업결과

 

 

■∥Microsoft Visual C++ 6.0을 이용하여 코딩한 이미지

 

■∥실행결과

 

 

 

코딩 텍스트 

 

#include <stdio.h>

void main()
{
 char Eng, End;
 printf("/*문자를 입력하면 대문자로 변환하여 출력하는 프로그램*/\n\n");
  do {
   printf("\n변환할 문자:");
   Eng=getchar();
   fflush(stdin);
   if(Eng>='a' && Eng<='z' || Eng>='A' && Eng<='Z')
   {
    if(Eng>='a' && Eng<='z')
     printf("입력된 문자는 '%c'이고, 변환된 문자는 '%c'입니다.\n\n", Eng, Eng-32); /*아스키 코드에서 소문자는 대문자보다 32가 크다. 그래서 입력된 소문자 값에 -32를 하는 것이다.*/
    else
     printf("입력된 문자는 '%c'이고, 변환된 문자는 '%c'입니다.\n\n", Eng, Eng);
   }
   else
    printf("입력값이 잘못되었습니다.\n\n");
  
   do {
    printf("작업을 재개하시겠습니까?('Y or N'):");
    End=getchar();
    fflush(stdin);
    if(End!='Y' && End!='y' && End!='N' && End!='n')
     printf("\n입력값이 잘못되었습니다. 다시 입력하십시오.\n");
   } while(End!='Y' && End!='y' && End!='N' && End!='n');
  } while(End=='Y' || End=='y');
  printf("\n\n아무키나 누르면 종료합니다.\n");
}