👤

Î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 oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!


ID Learners: Alte intrebari