Để lấy các nguyên âm từ một chuỗi, chúng ta phải lặp qua từng ký tự của chuỗi. Ở đây chúng ta phải sử dụng con trỏ để di chuyển qua chuỗi. Đối với điều này, chúng ta cần C kiểu chuỗi. Nếu chuỗi được trỏ bởi str, thì * str sẽ giữ ký tự đầu tiên ở đầu. Sau đó, nếu str được tăng lên, * str sẽ trỏ đến ký tự tiếp theo, v.v. Nếu ký tự nằm trong [a, e, i, o, u] hoặc [A, E, I, O, U] thì nó là nguyên âm. Vì vậy, chúng tôi sẽ tăng số lượng
Thuật toán
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
Ví dụ
#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());
} Đầu ra
Enter String: EDucation Number of Vowels: 5