Computer >> Máy Tính >  >> Lập trình >> C ++

Nguyên âm X đầu tiên từ một chuỗi trong C ++

Trong bài toán này, chúng ta được cung cấp chuỗi str [] có kích thước N và một số nguyên X. Nhiệm vụ của chúng ta là tạo chương trình in các nguyên âm X đầu tiên từ một chuỗi .

Chúng tôi sẽ in X nguyên âm đầu tiên từ chuỗi và nếu có ít hơn X nguyên âm, hãy in -1.

Hãy lấy một ví dụ để hiểu vấn đề,

Input: str = "learn C programming language", X = 5
Output: e, a, o, a, i
Vowels are a, e, i, o, u

Phương pháp tiếp cận giải pháp

Một giải pháp đơn giản cho vấn đề này là duyệt ký tự chuỗi theo điều lệ. Và lưu trữ tất cả các nguyên âm của chuỗi thành một chuỗi nguyên âm. Và nếu độ dài của chuỗi này bằng X, hãy trả về nó. Nếu tất cả các nguyên âm của chuỗi không thể đếm được tới X, hãy trả về -1.

Ví dụ

Chương trình minh họa hoạt động của giải pháp của chúng tôi

#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;
}

Đầu ra

The first 5 vowels from the string are eaoai