Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

พิมพ์สระเสียงแรก X ตัวจากสตริงใน C++


ในปัญหานี้ เราได้รับสตริง str[] ขนาด N และจำนวนเต็ม X ภารกิจของเราคือ สร้างโปรแกรมพิมพ์สระเสียงแรก X ตัวจากสตริง

เราจะพิมพ์สระเสียงแรก X ตัวจากสตริง และถ้ามีสระเสียงน้อยกว่า X ตัว ให้พิมพ์ -1

มาดูตัวอย่างเพื่อเข้าใจปัญหา

Input: str = "learn C programming language", X = 5 Output: e, a, o, a, i สระเสียงคือ a, e, i, o, u

วิธีการแก้ปัญหา

วิธีแก้ปัญหาแบบง่ายคือการเดินทางผ่านสตริงตัวละตัว และเก็บสระเสียงทั้งหมดของสตริงไว้ในสตริงสระเสียง และถ้าความยาวของสตริงนี้เท่ากับ X ให้คืนค่า ถ้าสระเสียงทั้งหมดของสตริงไม่สามารถทำให้ครบ X ได้ ให้คืนค่า -1

ตัวอย่าง

โปรแกรมสาธิตการทำงานของวิธีแก้ปัญหาของเรา

#include <iostream> #include <string.h> using namespace std; bool isaVowel(char c){ c = tolower(c); if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') return true; return false; } string findXVowelsString(string s, int x){ string vowelsString = ""; for (int i = 0; i < s.length(); i++) { if (isaVowel(s[i])) vowelsString += s[i]; if (vowelsString.length() == x) { return vowelsString; } } return "-1"; } int main(){ string str = "learn C programming language"; int x = 5; cout<<"The first "<<x<<" vowels from the string are "<<findXVowelsString(str, x); return 0; }

เอาต์พุต

The first 5 vowels from the string are eaoai