👤

V28. Șirul de caractere s2 este “clona” şirului de caractere s1 dacă se poate obţine din s1 prin eliminarea tuturor apariţiilor unei singure vocale. Se consideră vocală orice literă din mulţimea {a,e,i,o,u}. Scrieţi programul C/C++ care citeşte de la tastatură un cuvânt format din cel mult 20 litere mici ale alfabetului englez şi afişează pe ecran, toate “clonele” acestui cuvânt, fiecare pe câte o linie a ecranului.
Exemplu: pentru cuvântul informatica se afişează, nu neapărat în această
ordine, “clonele” scrise alăturat.
nformatca
infrmatica
informtic


Răspuns :

#include <iostream>

#include <cstring>

using namespace std;

void remove_ch(char str[], int pos) {

char temp[21];

strcpy(temp, str + pos + 1);

strcpy(str + pos, temp);

}

void print_clone(char str[], char ch) {

int len = strlen(str);

int modificat = 0;

for (int i = 0; i < len; i++) {

if (str[i] == ch) {

remove_ch(str, i);

modificat = 1;

}

}

if (modificat)

cout << str << "\n";

}

int main() {

char str[21];

cin >> str;

char vocale[21] = "aeiou";

int nr_vocale = strlen(vocale);

for (int i = 0; i < nr_vocale; i++) {

char copie[21];

strcpy(copie, str);

print_clone(copie, vocale[i]);

}

return 0;

}