Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ 문자열의 첫 번째 X 모음

<시간/>

이 문제에서는 크기가 N이고 정수 X인 문자열 str[]이 제공됩니다. 우리의 임무는 문자열에서 첫 번째 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