Buna, cum se poate rezolva aceasta problema: Î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.
Multumesc anticipat.
Răspunsuri la întrebare
Răspuns de
1
#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";
}
Snake13:
fix asta am scris in codeblocks
AICI SE PARE AI BĂGAT LITERA O INLOC DE ZERO ?
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă