Un şir de caractere s se numeşte “şablon” pentru un alt şir de caractere x, dacă este format din caractere din mulţimea {*,?,#}, are aceeaşi lungime cu x şi pe fiecare poziţie din s în care apare * în x se găseşte o vocală, pe fiecare poziţie din s în care apare # în x se găseşte o consoană şi pe fiecare poziţie din s în care apare ? putem avea orice caracter în x. Se consideră vocală orice literă din mulţimea {a,e,i,o,u}. Scrieţi programul C/C++ care citeşte de la tastatură două şiruri de caractere, de aceeaşi lungime, formate din cel mult 200 de litere mici ale alfabetului englez, şi afişează pe ecran un şablon comun celor două şiruri citite, care conţine un număr minim de caractere ?.
Exemplu: pentru şirurile diamant şi pierdut se afişează #**#??#
Răspunsuri la întrebare
Răspuns de
1
Salut!
Ai rezolvarea in C++ mai jos
#include <iostream>
#include <cstring>
using namespace std;
bool voc(char ch) {
return (strchr("AEIOUaeiou", ch) != NULL);
}
bool cons(char ch) {
return ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) && !voc(ch);
}
char c[31];
int main() {
char a[31], b[31];
cin >> a >> b;
for (int i = 0; a[i] != '\0'; ++i) {
if (voc(a[i]) && voc(b[i])) {
c[i] = '*';
}
else if (voc(a[i]) && cons(b[i])) {
c[i] = '?';
}
else if (cons(a[i]) && voc(b[i])) {
c[i] = '?';
}
else {
c[i] = '#';
}
}
cout << c;
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Geografie,
9 ani în urmă