소프트웨어/C

[2005년 중간 7번] 대/소문자 숫자 갯수 출력 - 문자값(ASCII code)

카켈 2007. 2. 16. 20:30




1. 목적

  - 문자값을 이해한다.

2. 문제 (점수 : 20 점)
  - ctype.h 함수를 쓰지 않고 입력된 문자의 속성의 갯수를 출력하라.
  - 대문자 / 소문자 / 숫자의 갯수를 각각 출력하라.
  - Ctrl + Z (EOF : ^Z) 값을 입력하면 종료 되도록 하라.
  - 출력 화면

KOREA Univ. 2007 C Programming
^Z
대문자의 개수  : 8
소문자의 개수  : 13
숫자의 개수    : 4
Press any key to continue

3. 이해
  - ASCII 코드값을 이해하는가?
  - 문자를 입력 받아 계산할수 있는가?

4. 코드

#include <stdio.h>

int main()
{
 char in = 0;
 int cap, num, small;
 cap = num = small = 0;

 while( (in = getchar()) != EOF )
 {
  if(in >= 48 && in <= 57) num++;
  if(in >= 65 && in <= 90) cap++;
  if(in >= 97 && in <= 122) small++;
 }

 printf("대문자의 개수  : %d\n소문자의 개수  : %d\n숫자의 개수    : %d\n",cap,small,num);
 
 return 0;
}

5. 해설
  - 아스키 코드(ASCII code)는 char 형 자료에 저장된 정수화된 글자 값에 대응합니다.
  - 48부터 과 57까지 숫자에 65에서 90까지 대문자와 97부터 122까지 소문자에 각각 대응합니다.

6. 참고

  - 문자 받는 유사 문제
  - http://www.asciitable.com/ : 아스키 코드(ASCII code)표