Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C언어로 입력한 문자의 종류 판별하기 – 대문자·소문자·숫자·특수문자 구분 프로그램

이 글에서는 사용자가 입력한 문자가 대문자, 소문자, 숫자, 특수문자 중 어느 것에 해당하는지 판별하는 C 프로그램을 다룹니다.

해결 방법

입력받은 문자의 ASCII 값을 기준으로 문자의 종류를 구분할 수 있습니다. 각 경우별 동작 방식은 다음과 같습니다.

1. 대문자인 경우

입력한 문자가 영문 대문자라면 '대문자(Upper Case)'라고 출력합니다.

입력 예시: H
출력 결과: Upper Case Letter (대문자)

2. 소문자인 경우

입력한 문자가 영문 소문자라면 '소문자(Lower Case)'라고 출력합니다.

입력 예시: g
출력 결과: Lower Case Letter (소문자)

3. 숫자인 경우

입력한 값이 숫자라면 '숫자(Number)'라고 출력합니다.

입력 예시: 3
출력 결과: Number (숫자)

4. 특수문자인 경우

위 세 가지에 해당하지 않는 문자라면 '특수문자(Symbol)'라고 출력합니다.

입력 예시: &
출력 결과: Symbol (특수문자)

알고리즘

주어진 문자가 대문자, 소문자, 숫자, 특수문자 중 무엇인지 판별하는 알고리즘은 다음과 같습니다.

  • 1단계: 실행 시점에 콘솔로부터 문자 하나를 입력받습니다.
  • 2단계: 해당 문자의 ASCII 값을 계산합니다.
  • 3단계: ASCII 값이 65 이상 90 이하라면 "Upper Case Letter(대문자)"를 출력합니다.
  • 4단계: ASCII 값이 97 이상 122 이하라면 "Lower Case Letter(소문자)"를 출력합니다.
  • 5단계: ASCII 값이 48 이상 57 이하라면 "Number(숫자)"를 출력합니다.
  • 6단계: 그 외의 경우에는 "Symbol(특수문자)"을 출력합니다.

C 언어 예제 코드

다음은 주어진 문자가 대문자, 소문자, 숫자, 특수문자 중 어떤 것인지 판별하는 전체 C 프로그램입니다.

#include<stdio.h>
int main(){
    char ch;
    printf("enter a character:");
    scanf("%c",&ch);
    if(ch >= 65 && ch <= 90)
        printf("Upper Case Letter");
    else if(ch >= 97 && ch <= 122)
        printf("Lower Case letter");
    else if(ch >= 48 && ch <= 57)
        printf("Number");
    else
        printf("Symbol");
    return 0;
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

실행 1:
enter a single character:45
Number

실행 2:
enter a character:#
Symbol

실행 3:
enter a character:M
Upper Case Letter

참고: 라이브러리 함수 활용하기

ASCII 값을 직접 비교하는 대신 <ctype.h> 헤더 파일에 포함된 함수들을 활용할 수도 있습니다. isupper(), islower(), isdigit() 함수를 사용하면 코드를 더욱 간결하고 직관적으로 작성할 수 있습니다.

#include<stdio.h>
#include<ctype.h>
int main(){
    char ch;
    printf("enter a character:");
    scanf("%c",&ch);
    if(isupper(ch))
        printf("Upper Case Letter");
    else if(islower(ch))
        printf("Lower Case Letter");
    else if(isdigit(ch))
        printf("Number");
    else
        printf("Symbol");
    return 0;
}

두 방법 모두 동일한 결과를 제공하지만, 표준 라이브러리 함수를 사용하는 방식이 가독성과 유지보수 측면에서 더 권장됩니다.