C++:
Se consideră un text cu cel mult 100 de caractere, în care cuvintele sunt formate din litere mari ale alfabetului englez și sunt separate prin câte un spațiu.
Scrieţi un program C++ care citeşte de la tastatură un text de tipul menţionat mai sus şi afișează pe ecran, pe câte un rând, cuvintele care cuprind cel puțin o notă muzicală. Dacă nu există astfel de cuvinte, se afișează pe ecran mesajul nu exista.
Notele muzicale sunt DO, RE, MI, FA, SOL, LA, SI.
Exemplu: pentru textul
REMI DOMINO SI KHANHOO SUNT DENUMIRI DE JOCURI CE AU ASPECTE SIMILARE
se afişează cuvintele de mai jos, nu neapărat în această ordine:
REMI
DOMINO
SI
DENUMIRI
SIMILARE
Răspunsuri la întrebare
Răspuns de
16
Pe cat de simplu, pe atat de greu
Ai aici rezolvarea la care m-am gandit eu
int main()
{
char key[]="REMI DOMINO SI KHANHOO SUNT DENUMIRI DE JOCURI CE AU ASPECTE SIMILARE";
char str1[]="DO";
char str2[]="RE";
char str3[]="MI";
char str4[]="FA";
char str5[]="SOL";
char str6[]="LA";
char str7[]="SI";
char sep[]=" ";
char b[50][50];
char c[50][50];
char * p=strtok(key,sep);
int k=0;
while(p)
{
strcpy(b[k],p);k++;
p=strtok(NULL,sep);
}
int j=0;
bool ok=false;
for(int i=0;i<k;i++)
{
ok=false;
if(strstr(b[i],str1))
{
ok=true;
}
if(strstr(b[i],str2))
{
ok=true;
}
if(strstr(b[i],str3))
{
ok=true;
}
if(strstr(b[i],str4))
{
ok=true;
}
if(strstr(b[i],str5))
{
ok=true;
}
if(strstr(b[i],str6))
{
ok=true;
}
if(strstr(b[i],str7))
{
ok=true;
}
if(ok==true)
{
strcpy(c[j],b[i]);j++;
}
}
if(ok==false)
{
cout<<" Nu exista!";
}
for(int i=0;i<j;i++)
cout<<c[i]<<endl;
}
Eu am dat valoare vectorului key fara a-l mai citi de la tastatura ca dura prea mult,poti modifica usor
Ai aici rezolvarea la care m-am gandit eu
int main()
{
char key[]="REMI DOMINO SI KHANHOO SUNT DENUMIRI DE JOCURI CE AU ASPECTE SIMILARE";
char str1[]="DO";
char str2[]="RE";
char str3[]="MI";
char str4[]="FA";
char str5[]="SOL";
char str6[]="LA";
char str7[]="SI";
char sep[]=" ";
char b[50][50];
char c[50][50];
char * p=strtok(key,sep);
int k=0;
while(p)
{
strcpy(b[k],p);k++;
p=strtok(NULL,sep);
}
int j=0;
bool ok=false;
for(int i=0;i<k;i++)
{
ok=false;
if(strstr(b[i],str1))
{
ok=true;
}
if(strstr(b[i],str2))
{
ok=true;
}
if(strstr(b[i],str3))
{
ok=true;
}
if(strstr(b[i],str4))
{
ok=true;
}
if(strstr(b[i],str5))
{
ok=true;
}
if(strstr(b[i],str6))
{
ok=true;
}
if(strstr(b[i],str7))
{
ok=true;
}
if(ok==true)
{
strcpy(c[j],b[i]);j++;
}
}
if(ok==false)
{
cout<<" Nu exista!";
}
for(int i=0;i<j;i++)
cout<<c[i]<<endl;
}
Eu am dat valoare vectorului key fara a-l mai citi de la tastatura ca dura prea mult,poti modifica usor
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă