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

Se consideră un text cu maximum 255 de caractere, format din litere mici ale alfabetului englez
şi spaţii. Textul conţine cel puţin o consoană. Scrieţi un program C++ care citeşte de la tastatură
textul şi afişează pe ecran numai ultima consoană care apare în text. Exemplu: dacă de la
tastatură se introduce textul mare frig saci pe ecran se va afişa: c.
MA INTERESEAZA MAI MULT CUM AFLU ULTIMA CONSOANA!

Răspunsuri la întrebare

Răspuns de stassahul
4
Pai nai ce face, te uiti daca ai dat de o consoana, daca da inlocuiesti un char cu valoarea consoanei, astfel de fiecare daca se inlocuieste si logic ca ultima consoana va fi in charul cela

#include <iostream>
#include <cstring>

using namespace std;

char s[256],c;

int main()
{

    cin.getline(s,256);

    for(int i=0;i<strlen(s);i++)
        if(!strchr("aeiou ",s[i])) //*
            c=s[i];

    cout << c;

    return 0;

}

//*: Daca se spune ca textul contine doar litere mici si spatii:
// Atunci daca punem conditia: " daca nu este vocala 'aeiou' sau 
// spatiu ' ' " am dat de consoana

aramona87: iar prima vocala cum as putea afla?
ArMyFoRHeLL: Pentru a afla prima vocala pur si simplu parcurgi sirul si cand ai gasit o vocala iesi cu break
ArMyFoRHeLL: #include <iostream>
#include <cstring>

using namespace std;

char s[256],c;

int main()
{

cin.getline(s,256);

for(int i=0;i<strlen(s);i++)
if(!strchr("aeiou ",s[i]))
{
c=s[i];
break;
}

cout << c;

return 0;

}
ArMyFoRHeLL: fara ! negatie la if
stassahul: Ai gresit :D, nu se poate sa copii codul
stassahul: Vezi ca la strchr("aeiou ",s[i]), dupa u este spatiu, ceea ce inseamna ca el cauta si spatii. Deci daca primul cuvint nu contine vocale si e pus spatiu, atunci programul se va opri la acel spatiu si nu va afisa nimic, de ex daca ai "br este bromul" nu-ti afiseaza nimic
Alte întrebări interesante