문자열에서 모음을 얻으려면 문자열의 각 문자를 반복해야 합니다. 여기서 포인터를 사용하여 문자열을 이동해야 합니다. 이를 위해서는 C 스타일 문자열이 필요합니다. 문자열이 str로 가리키는 경우 *str은 처음에 첫 번째 문자를 유지합니다. 그런 다음 str이 증가하면 *str은 다음 문자를 가리킵니다. 문자가 [a,e,i,o,u] 또는 [A, E, I, O, U]에 있으면 모음입니다. 그래서 우리는 수를 늘릴 것입니다
알고리즘
countVowels(str)
begin count := 0 for each character ch in str, do if ch is in [a,e,i,o,u] or [A, E, I, O, U], then count := count + 1 end if done return count end
예시
#include<iostream> using namespace std; int countVowels(const char *myStr){ int count = 0; while((*myStr) != '\0'){ if(*myStr == 'a' || *myStr == 'e' || *myStr == 'i' || *myStr == 'o' || *myStr == 'u' || *myStr == 'A' || *myStr == 'E' || *myStr == 'I' || *myStr == 'O' || *myStr == 'U') { count++; } myStr++; } return count; } main() { string myStr; cout << "Enter String: "; cin >> myStr; cout << "Number of Vowels: " << countVowels(myStr.c_str()); }
출력
Enter String: EDucation Number of Vowels: 5