Răspuns :
Răspuns:
#include <cstring>
#include <iostream>
using namespace std;
/* un macro ca să evităm „magic numbers” (acuma știm clar ce reprezintă acel 260) */
constexpr auto BUFFER_SIZE = 260;
/* semnătura funcției */
bool eVocala(const char& caracter);
int main()
{
int nrVocale;
char sirCitit[BUFFER_SIZE];
std::cout << "Introdu nr. minim de vocale per cuvant >> ";
/* citim numărul de vocale */
cin >> nrVocale;
std::cout << "Introdu sirul de caractere >> ";
/* cin.ignore(...) golește buffer-ul de garbage values (ca să poți citi în continuare de la tastatură), trebuie pus deoarece când citim „nrVocale” în buffer o să avem ceva de genul „3\n”, având nevoie de un întreg o să ia doar 3-ul și rămânem în buffer cu „\n” iar când ajungem la cin.getline(...) citește caracterul rămas și programul își termină execuția */
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cin.getline(sirCitit, BUFFER_SIZE);
/* delimitatorii după care separăm cuvintele */
char delimitatori[] = " .,!?";
/* ne folosim de strtok(...) care sparge string-ul inițial în string-uri mai mici după delimitatorii specificați mai sus */
char* cuvantCurent{ strtok(sirCitit, delimitatori) };
while (cuvantCurent) {
/* inițializăm contorul vocalelor la 0 */
int contorVocale{};
/* luăm caracter cu caracter */
for (int i{}; i < strlen(cuvantCurent); i++) {
/* dacă caracterul e vocală incrementăm contorul */
if (eVocala(cuvantCurent[i])) {
contorVocale++;
}
/* dacă avem suficiente vocale-n cuvântul curent îl afișăm și ieșim din for */
if (contorVocale == nrVocale) {
std::cout << cuvantCurent << " ";
break;
}
}
cuvantCurent = strtok(NULL, delimitatori);
}
return 0;
}
bool eVocala(const char& caracter)
{
char vectorVocale[]{ "aeiouAEIOU" };
for (int i = 0; i < sizeof(vectorVocale); i++) {
if (caracter == vectorVocale[i]) {
return true;
}
}
return false;
}
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, vă rugăm să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la lista de favorite!