Informatică, întrebare adresată de butni, 9 ani în urmă


Se dă un şir de cel mult 20 caractere ce conţine numai litere mici ale alfabetului englez.

Cerinţa

Să se afişeze şirul obţinut prin eliminarea din șir a fiecărei vocale.

Date de intrare

Programul va citi de la tastatură şirul dat.

Date de ieşire

Programul va afişa pe ecran şirul transformat corespunzător.

Restricţii şi precizărise consideră vocale literele din mulțimea {a,e,i,o,u}

Răspunsuri la întrebare

Răspuns de Utilizator anonim
34
Exista doua solutii, ambele au 100 de puncte pe pbinfo, daca acolo vrei sa le pui.
Solutia 1 in care pur si simplu nu se afiseaza vocalele:
#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    char a[21];
    cin >> a;
    for (int i=0; a[i]; i++)
        if (!strchr("aeiouAEIOU", a[i]))
            cout << a[i];
    return 0;
}

Solutia 2 in care se elimina vocalele din sir si apoi se afiseaza sirul (e ceva mai putin eficienta, dar buna pentru exersat eliminarea dintr-un sir):
#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    char a[21], s[21];
    cin >> a;
    for (int i=0; i < strlen(a); i++)
        if (strchr("aeiouAEIOU", a[i]))
        {
            strcpy(s, a+i+1);
            strcpy(a+i, s);
            i--;
        }
    cout << a;
    return 0;
}

In caz ca te intereseaza, solutia oficiala este cea de-a doua, in care se elimina din sir.
Alte întrebări interesante