👤

Scrieți funcția cu următorul antet:


void Prescurtat(char s[ ])


Funcția primește ca parametru un text de cel mult 50 de caractere, alcătuit din cuvinte separate prin câte un spațiu și 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. Funcția va returna tot prin intermediul parametrului s numele instituției scris fără prescurtări.





Exemplu

Dacă s memorează inițial COLEG. NAT. DE INFORMATICA, atunci după apelul Prescurtat(s), șirul va deveni COLEGIUL NATIONAL DE INFORMATICA.


Restricții și precizări

Lungimea inițială a șirului s va fi de cel mult 50, iar la final de cel mult 100.

Puteți utiliza funcțiile pentru șirurile de caractere din biblioteca cstring


Acesta este codul meu, pe exemplu si pe altele create de mine imi da bine, pe site-ul pbinfo imi da tot gresit, doresc sa-mi spuneti daca stiti care este motivul. Multumesc!


Problema se numeste "prescurtat".

Codul meu => https://pastebin.com/TGwaS0Dv



Răspuns :

void Prescurtat(char s[])

{

   char w[100], *p, sep[]=" ", c1[]="COLEGIUL", c2[]="LICEUL", c3[]="NATIONAL", c4[]="TEORETIC";

   int n;

     p=strtok(s,sep); w[0]='\0';

   while (p)

   {

       n=strlen(p);

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

       else

       {

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

           if (strstr(c1,p)) strcat(w,c1);

           if (strstr(c2,p)) strcat(w,c2);

           if (strstr(c3,p)) strcat(w,c3);

           if (strstr(c4,p)) strcat(w,c4);

       }

       p=strtok(NULL, sep);

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

   }

   strcpy(s,w);

}

Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.


Wix Learning: Alte intrebari