👤

Într-un text de cel mult 50 de caractere cuvintele sunt separate prin câte un spațiu și sunt formate din
litere mari ale alfabetului englez, urmate eventual de caracterul . (punct), dacă sunt scrise prescurtat.
Textul reprezintă numele unei instituții de învățământ și doar cuvintele din mulțimea
{COLEGIUL, LICEUL, NATIONAL, TEORETIC} pot fi prescurtate, eliminându-se ultimele lor litere.
Scrieţi un program C/C++ care citeşte de la tastatură un text de tipul precizat și construiește în
memorie, apoi afișează pe ecran, numele instituției scris fără prescurtări.
Exemplu: dacă se citește textul COLEG. NATIONAL DE INFORMATICA sau textul
COLEG. NAT. DE INFORMATICA se obține COLEGIUL NATIONAL DE INFORMATICA


Răspuns :

#include <iostream>

#include <cstring>

using namespace std;

char cuv[4][15]={"COLEGIUL","LICEUL","NATIONAL","TEORETIC"},

      t[50], s[80], *p, sep[]=" ";

int poz, i, n, k;

int main()

{

   cin.getline(t,50);

   p=strtok(t,sep);

   while (p)

   {

       n=strlen(p);

       if (p[n-1]!='.') strcat(s,p);

       else

       {

           p[n-1]='\0';

           for (k=0; k<4; ++k)

           {

               if (strstr(cuv[k],p))

               {

                   strcat(s,cuv[k]);

                   break;

               }

           }

       }

       p=strtok(NULL, sep);

       if (p) strcat(s, " ");

   }

     cout << s << "\n";

}

Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!


En Studentsy: Alte intrebari