从 C++ 字符串中提取前 X 个元音


在此问题中,我们给定大小为 N 的字符串 str[] 和一个整数 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

更新于: 01-Feb-2022

187 次浏览

开启你的 事业

完成课程即可获得认证

开始
广告