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

C++로 문자가 모음인지 자음인지 판별하는 프로그램

영어 알파벳에서 a, e, i, o, u는 모음(Vowel)이며, 나머지 알파벳은 모두 자음(Consonant)으로 분류됩니다. 이 글에서는 C++를 사용하여 입력된 문자가 모음인지 자음인지 판별하는 방법을 단계별로 살펴보겠습니다.

1. 기본 구현: 소문자 판별

가장 간단한 방법은 if-else 조건문을 사용하여 문자가 a, e, i, o, u 중 하나와 일치하는지 비교하는 것입니다.

예제 코드

#include <iostream>
using namespace std;
int main() {
    char c = 'a';
    if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
        cout << c << " is a Vowel" << endl;
    else
        cout << c << " is a Consonant" << endl;
    return 0;
}

실행 결과

a is a Vowel

코드 설명

위 프로그램의 핵심 로직은 다음 코드 조각에 있습니다. ||(논리 OR) 연산자를 사용하여 문자 c가 다섯 개의 모음 중 하나와 일치하는지 검사합니다. 일치하면 모음으로 출력하고, 그렇지 않으면 자음으로 출력합니다.

if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
    cout << c << " is a Vowel" << endl;
else
    cout << c << " is a Consonant" << endl;

2. 확장 구현: 대소문자 모두 지원

앞선 예제는 소문자만 처리할 수 있다는 한계가 있습니다. 실제 프로그램에서는 대문자 입력도 고려해야 하므로, 대문자 A, E, I, O, U에 대한 조건을 추가로 검사하도록 확장할 수 있습니다.

예제 코드

#include <iostream>
using namespace std;
int main() {
    char c = 'B';
    if (c == 'a' || c == 'e' || c == 'i' ||
        c == 'o' || c == 'u' || c == 'A' ||
        c == 'E' || c == 'I' || c == 'O' || c == 'U')
        cout << c << " is a Vowel" << endl;
    else
        cout << c << " is a Consonant" << endl;
    return 0;
}

실행 결과

B is a Consonant

코드 설명

이번 버전에서는 if 문이 소문자(a, e, i, o, u)와 대문자(A, E, I, O, U)를 모두 검사합니다. 문자 'B'는 어떤 모음과도 일치하지 않으므로 자음으로 판별되어 출력됩니다.

if (c == 'a' || c == 'e' || c == 'i' ||
    c == 'o' || c == 'u' || c == 'A' ||
    c == 'E' || c == 'I' || c == 'O' || c == 'U')
    cout << c << " is a Vowel" << endl;
else
    cout << c << " is a Consonant" << endl;

3. 더 효율적인 대안: tolower() 활용

조건문이 길어지는 것이 번거롭다면, <cctype> 헤더의 tolower() 함수로 문자를 먼저 소문자로 변환한 뒤 검사하면 코드를 크게 줄일 수 있습니다.

#include <iostream>
#include <cctype>
using namespace std;
int main() {
    char c = 'O';
    char lower = tolower(c);
    if (lower == 'a' || lower == 'e' || lower == 'i' ||
        lower == 'o' || lower == 'u')
        cout << c << " is a Vowel" << endl;
    else
        cout << c << " is a Consonant" << endl;
    return 0;
}

마무리

정리하면, 문자가 모음인지 자음인지 판별하는 가장 기본적인 방법은 논리 OR 연산자로 후보 문자들과 비교하는 것입니다. 대소문자를 모두 지원하려면 조건을 추가하거나, tolower() 함수를 사용해 코드를 간결하게 유지할 수 있습니다. 이러한 판별 로직은 문자열 처리, 입력 유효성 검사 등 다양한 C++ 프로그래밍 상황에서 유용하게 활용됩니다.