Informatică, întrebare adresată de magdalenapop, 8 ani în urmă

Î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ăspunsuri la întrebare

Răspuns de boiustef
2

#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";

}

Alte întrebări interesante