การหาจำนวนสระในสตริงโดยใช้ Pointer ต้องเข้าใจสตริง สระ และวิธีใช้ Pointer กับสตริง
สตริงคืออาร์เรย์ของตัวอักษร สระคือตัวอักษรจากเซต {a,e,i,o,u} Pointer คือตัวแปรที่เก็บค่าตำแหน่งหน่วยความจำของตัวแปร
เพื่อหาจำนวนสระในสตริง เราจะวนลูปผ่านสตริง และเปรียบเทียบแต่ละตัวอักษรกับสระ หากเท่ากัน เพิ่มตัวนับ มิฉะนั้นไม่เพิ่ม
เงื่อนไขของโค้ดด้านล่างคือ ต้องการสตริงที่มีตัวอักษรพิมพ์เล็กทั้งหมด หากไม่ใช่ สามารถใช้เมธอด tolower() ได้
ตัวอย่าง
#include <iostream>
using namespace std;
int main() {
char str[] = "i love tutorials point";
char *prt;
prt = str;
int count = 0;
for(prt; (*prt) != '\0'; prt++) {
if (*prt == 'a' || *prt == 'e' || *prt == 'i' || *prt == 'o' || *prt == 'u') {
count++;
}
}
cout << "Vowels in the string: " << count;
return 0;
}
ผลลัพธ์
Vowels in the string: 9