문자열에 포함된 모음과 자음의 개수를 세려면 문자열의 각 문자를 하나씩 검사해야 합니다. 이때 대문자와 소문자를 모두 확인하는 것이 중요합니다. 검사 과정에서 대소문자를 놓치면 정확한 결과를 얻을 수 없습니다.
모음 개수 세기
모음을 세려면 'a', 'e', 'i', 'o', 'u' 문자를 대소문자별로 각각 비교하여 검사합니다.
if (myStr[i] == 'a' || myStr[i] == 'e' || myStr[i] == 'i' || myStr[i] == 'o' || myStr[i] == 'u' || myStr[i] == 'A' || myStr[i] == 'E' || myStr[i] == 'I' || myStr[i] == 'O' || myStr[i] == 'U') {
vowel_count++;
}자음 개수 세기
자음을 세려면 else if 조건을 사용하여 알파벳 범위(a~z, A~Z)에 속하면서 모음이 아닌 나머지 문자를 검사합니다.
else if ((myStr[i] >= 'a' && myStr[i] <= 'z') || (myStr[i] >= 'A' && myStr[i] <= 'Z')) {
cons_count++;
}전체 예제 코드
다음은 문자열에서 모음과 자음의 개수를 세는 완전한 C# 프로그램입니다.
using System;
public class Demo {
public static void Main() {
string myStr;
int i, len, vowel_count, cons_count;
myStr = "Jack Sparrow";
vowel_count = 0;
cons_count = 0;
// 문자열 길이 구하기
len = myStr.Length;
for(i=0; i<len; i++) {
if(myStr[i]=='a' || myStr[i]=='e' || myStr[i]=='i' || myStr[i]=='o' || myStr[i]=='u' || myStr[i]=='A' || myStr[i]=='E' || myStr[i]=='I' || myStr[i]=='O' || myStr[i]=='U') {
vowel_count++;
} else if((myStr[i]>='a' && myStr[i]<='z') || (myStr[i]>='A' && myStr[i]<='Z')) {
cons_count++;
}
}
Console.Write("\nVowel in the string: {0}\n", vowel_count);
Console.Write("Consonant in the string: {0}\n\n", cons_count);
}
}코드 동작 원리
프로그램은 다음 순서로 동작합니다.
1. myStr.Length로 문자열의 전체 길이를 구합니다.
2. for 반복문으로 각 문자를 처음부터 끝까지 순회합니다.
3. 현재 문자가 모음(a, e, i, o, u 및 대문자)이면 vowel_count를 증가시킵니다.
4. 모음이 아니면서 알파벳 범위에 속하면 자음으로 판단하여 cons_count를 증가시킵니다.
5. 공백이나 특수문자는 두 카운트 모두에 포함되지 않습니다.
6. 최종적으로 Console.Write로 결과를 출력합니다.
실행 결과
예제 문자열 "Jack Sparrow"에는 모음이 3개(a, o, 그리고... 실제로는 a, o, a), 자음이 8개 포함되어 있습니다.
Vowel in the string: 3 Consonant in the string: 8