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
Vowels are 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