Rezolvare completă PbInfo #2813 Note

Cerința

Se consideră un text cu cel mult 100 de caractere, în care cuvintele sunt formate din litere mari ale alfabetului englez și sunt separate prin câte un spațiu.

Scrieți un program care citește de la tastatură un text de tipul menționat mai sus și afișează pe ecran, pe câte un rând, cuvintele care cuprind cel puțin o notă muzicală. Dacă nu există astfel de cuvinte, se afișează pe ecran mesajul nu exista.

Date de intrare

Programul citește de la tastatură un text de tipul menționat.

Date de ieșire

Programul va afișa pe ecran, pe câte un rând, cuvintele care cuprind cel puțin o notă muzicală. Dacă nu există astfel de cuvinte, se afișează pe ecran mesajul nu exista.

Restricții și precizări

  • cuvintele vor fi afișate în ordinea din text
  • notele muzicale sunt DO, RE, MI, FA, SOL, LA, SI.

Exemplu

Intrare

REMI DOMINO SI KHANHOO SUNT DENUMIRI DE JOCURI CE AU ASPECTE SIMILARE

Ieșire

REMI
DOMINO
SI
DENUMIRI
SIMILARE

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Note:

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char s[101], * p, note[][4] = {"DO", "RE", "MI", "FA", "SOL", "LA", "SI"};
    int gasit = 0;
    cin.getline(s, sizeof(s));
    p = strtok(s, " ");
    while(p)
    {
        int ok = 0;
        for(int i = 0 ; i < 7 ; i ++)
            if(strstr(p, note[i]) != NULL)
                ok = 1;
        if(ok)
            cout << p << "
", gasit = 1;
        
        p = strtok(NULL , " ");
    }
    if(! gasit)
        cout << "nu exista";
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2813 Note

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2813 Note de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!