Exemple
Problema 1
Scrieti un program C/C++ care citeste de la tastatura un cuvânt format din cel mult 20 de caractere, doar litere ale alfabetului englez. Programul determina transformarea cuvântului citit prin înlocuirea fiecarei litere mici a cuvântului cu litera mare corespunzatoare, restul literelor nemodificându-se, ca în exemplu. Programul afiseaza pe ecran cuvântul obtinut. Exemplu: pentru cuvântul: bACAlaUrEaT se va afisa pe ecran: BACALAUREAT
#include<string.h>
#include<iostream.h>
char s[21];
void main()
{
cin>>s;
strupr(s);
cout<<s;
}
#include<iostream.h>
char s[21];
void main()
{
cin>>s;
strupr(s);
cout<<s;
}
Problema 2
2. Se considera un text cu maximum 255 de caractere în care cuvintele sunt separate prin unul sau mai multe spatii. Primul caracter din textul citit este o litera, iar cuvintele sunt formate numai din litere mici ale alfabetului englez. Scrieti un program C/C++ care citeste de la tastatura textul si îl transforma înlocuind prima litera a fiecarui cuvânt cu litera mare corespunzatoare, restul caracterelor r?mânând nemodificate. Textul astfel transformat va fi afisat pe ecran.
daca de la tastatura se introduce textul: "mare frig rosu"
se va afisa pe ecran: "Mare Frig Rosu"
#include<string.h>
#include<iostream.h>
char s[256];
int i;
void main()
{
gets(s);
s[0]=toupper(s[0]);
for(i=0;i>strlen(s)-1;i++)
if(s[i]==' ' && s[i+1]!=' ')
s[i+1]=toupper(s[i+1]);
cout<<s;
}
#include<string.h>
#include<iostream.h>
char s[256];
int i;
void main()
{
gets(s);
s[0]=toupper(s[0]);
for(i=0;i>strlen(s)-1;i++)
if(s[i]==' ' && s[i+1]!=' ')
s[i+1]=toupper(s[i+1]);
cout<<s;
}
Problema 3
Se considera un text cu maximum 255 de caractere, format din litere mici ale alfabetului englez si spatii. Textul contine cel putin o consoana. Scrieti un program C/C++ care citeste de la tastatura textul si afiseaza pe ecran numai ultima consoana care apare în text.
Exemplu: daca de la tastatura se introduce textul mare frig saci pe ecran se va afisa:
#include<string.h> #include<iostream.h> char s[256],voc[6]={'a','e','i','o','u'} int i,ok; void main() { gets(s); for(i=strlen(s)-1;i>=0;i--) if(s[i]!=' ' && strchr(voc,s[i]==0) { ok=1; Cout<<s[i]; } }
Problema 4
Se considera un text alcatuit din cel mult 250 de caractere, în care cuvintele sunt formate doar din litere mici ale alfabetului englez si sunt separate prin unul sau mai multe caractere *. Scrieti un program C/C++ care citeste de la tastatura textul si afiseaza pe ecran, pe câte o linie, toate secventele formate din câte doua litere identice, ca în exemplu.
Exemplu: daca textul citit este: copiii*sunt*la***zoo
se afiseaza perechile alaturate ii,ii,oo
#include<string.h> #include<iostream.h> char s[251]; int i; void main() { gets(s); for(i=0;i='a' && s[i]<='z' && s[i]==s[i+1]) cout<<s[i]<<s[i+1]<<endl; }
Problema 5
Scrieti un program C/C++ care citeste de la tastatura doua siruri de caractere formate din maximum 100 litere mici ale alfabetului englez si afiseaza pe ecran cel mai lung sufix comun al celor doua siruri de caractere.
Exemplu: pentru sirurile marina si elena se va afisa na
#include<string.h> #include<iostream.h> char s1[101], s2[101]; int i,j; { gets(s1); gets(s2); i=strlen(s1)-1; j=strlen(s2)-1; while(i>=0 && j>=0 && s1[[i]==s2[j]) { i--; j--; } for (j=i+1;j<strlen(s1);j++) cout<<s1[j]; }
Problema 6
Scrieti un program C/C++ care citeste de la tastatura doua caractere c1 si c2 si un text având cel mult 250 caractere (spatii si litere ale alfabetului englez), pe care îl modifica înlocuind toate aparitiile caracterului memorat în c1 cu cel memorat în c2 si toate aparitiile caracterului memorat în c2 cu cel memorat în c1. Programul afiseaza pe linii separate ale ecranului atât textul initial cât si textul obtinut dupa efectuarea înlocuirilor.
Exemplu: daca pentru c1 se citeste a, pentru c2 se citeste o iar textul citit este:
hocus pocus preparatus
se va afisa :
hocus pocus preparatus
hacus pacus preporotus
hocus pocus preparatus
se va afisa :
hocus pocus preparatus
hacus pacus preporotus
#include<string.h> #include<iostream.h> char s[251],c1,c2; int i; void main() { gets(s); cin>>c1>>c2; cout<<s; for(i=0;i<strlen(s);i++) if(s[i]==c1) s[i]=c2; else if(s[i]==c2) s[i]=c1; cout<<s; }
Problema 7
Scrieti un program C/C++ care citeste de la tastatura o fraza de maximum 255 de caractere (litere mari ale alfabetului englez si spatii), ale carei cuvinte sunt despartite prin câte un spatiu si afiseaza pe primul rând al ecranului numarul total al cuvintelor din fraza, iar pe rândul urmator de ecran, în ordine alfabetica, scrise o singura data, consoanele care au aparut în fraza (consoane sunt toate literele alfabetului englez, mai putin A, E, I, O, U). Literele afisate sunt separate prin câte un spatiu.
Exemplu: daca se citeste fraza LA BACALAUREAT SUBIECTELE AU FOST USOARE
se va afisa:
6
B C F L R S T
se va afisa:
6
B C F L R S T
#include<string.> #include<iostream.h> char s[256],lit,voc[6]={'A','E','I','O','U'} int i,nr,ok; void main() { gets(s); for(i=0;i<strlen(s);i++) if(s[i]==' ') nr++; cout<<nr; for(lit='B';lit='Z';lit++) { ok=0; for(i=0;i<strlen(s);i++) if (strchr(voc s[i]==0 && s[i]!=' ')); { cout<<s[i]<<" "; ok=1; } } }
Problema 8
Scrieti programul C/C++ care citeste de la tastatura un sir de cel mult 40 de caractere, format doar din litere mici ale alfabetului englez, si care afiseaza pe ecran, pe o singura linie, toate vocalele ce apar în sirul citit. Vocalele vor fi afisate în ordinea aparitiei lor în sir, separate prin câte un spatiu, ca în exemplu. sirul citit contine cel putin o vocala si se considera ca fiind vocale urmatoarele litere: a, e, i, o, u.
Exemplu: daca se citeste sirul calculator atunci pe ecran se va afisa: a u a o
#include#include char[41],voc[6]={'a','e','i','o','u'} int i; void main() { gets(s); for(i=0;i<strlen(s);i++) if(strchr(voc,s[i])!=0) cout<<s[i]<<' '; }
Problema 9
Scrieti un program C/C++ care citeste de la tastatura un sir format din maximum 100 caractere, construieste în memorie si afiseaza un nou sir de caractere obtinut din sirul initial prin eliminarea tuturor caracterelor care nu sunt caractere cifra. În cazul în care noul sir are lungimea 0 se va afisa mesajul sir vid.
Exemplu: daca se citeste de la tastatura sirul de caractere.
Ana are 17 ani .
atunci sirul cerut este:
17
atunci sirul cerut este:
17
#include<string.h> #include<iostream.h> char s[101]; int i; void main() { gets(s); while(i<strlen(s)-1) if(!s[i]>='0' && s[i]<='9') strcpy(s+i;s+i+1); else i++; if(strlen(s)==0) cout<<"sir vid"; else cout<<s; }
Problema 10
Se considera variabilele s1 si s2 care memoreaza fiecare câte un sir de maximum 50 de caractere. Scrieti secventa de instructiuni care afiseaza cele doua siruri de caractere în ordinea crescatoare a lungimilor lor.if(strlen(s1)<=strlen(s2)) cout<<s1<<' '<<s2; else if(strlen(s1)>strlen(s2)) cout<<s2<<' '<<s1;
Problema 11
Scrieti programul C/C++ care citeste de la tastatura un cuvânt de maximum 20 de litere si minimum o litera si afiseaza pe ecran toate cuvintele obtinute din cuvântul citit prin eliminarea primei si a ultimei litere. Prima prelucrare se refera la cuvântul citit, iar urmatoarele la cuvântul rezultat din prelucrarea anterioara. Procedeul de eliminare si afisare se va repeta pâna când se obtine cuvântul vid, ca în exemplu. Fiecare cuvânt obtinut se va afisa pe câte o linie a ecranului.
Exemplu : daca se citeste cuvântul bacalaureat, se va afisa:
bacalaureat
acalaurea
calaure
alaur
lau
a
bacalaureat
acalaurea
calaure
alaur
lau
a
#include<string.h> #include<iostream.h> char s[21]; void main() { gets(s); while(strlen(s)>0) { cout<<s; strcpy(s,s+1) if(strlen(s)>0) s[strlen(s)-1]=0; } }
Problema 12
Scrieti programul C/C++ care citeste de la tastatura un text de cel mult 50 de caractere, (litere mici ale alfabetului englez si spatii), text format din mai multe cuvinte, separate prin câte un spatiu, si afiseaza pe ecran textul obtinut din cel initial prin transformarea primei litere a fiecarui cuvânt în majuscula.
Exemplu: daca se citeste textul
azi este examen de bacalaureat
se va afisa
Azi Este Examen De Bacalaureat
azi este examen de bacalaureat
se va afisa
Azi Este Examen De Bacalaureat
#include<string.h> #include<iostream.h> char s[51]; int i; void main() { gets(s); s[0]=s[0]-32; for(i=1;i<strlen(s);i++) if(s[i-1]==' ') s[i]=s[i]-32; cout<<s; }
Problema 13
Scrieti un program C/C++ care citeste de la tastatura un cuvânt cu maximum 20 de litere si minimum o litera, construieste si afiseaza pe ecran cuvântul obtinut din inversarea literelor din prima jumatate a cuvântului cu cele din jumatatea a doua. Literele din fiecare jumatate îsi pastreaza ordinea din cuvântul initial, ca în exemplu. În cazul în care cuvântul are un numar impar de litere, atunci litera din mijloc va ramâne pe loc.
Exemplu: daca se citeste cuvântul caiet se va obtine cuvântul etica, iar daca se citeste
cuvântul cada se va obtine daca
#include<string.h> #include<iostream.h> char s[21],aux; int i,k; void main() { gets(s); k=strlen(s)/2; if(strlen(s)%2!=0) for(i=0;i<=k;i++) { aux=s[i]; s[i]=s[k+i+1]; s[k+i+1]=aux; } else for(i=0;i<=k-1;i++) { aux=s[i]; s[i]=s[k+1]; s[k+1]=aux; } cout<<s; }
Problema 14
Variabila cuv retine un cuvânt format din cel mult 25 litere mici ale alfabetului englez. Scrieti o secventa de program C/C++ care afiseaza pe ecran vocalele cuvântului, în ordinea aparitiei lor în cuvânt.
Exemplu: daca cuv retine cuvântul examen se afiseaza eae
#include<string.h> #include<iostream.h> char s[26];voc[6]={'a','e','i','o','u'}; int i,j; void main() { cin>>s; for(i=0;i<strlen(s);i++) for(j=0;j<strlen(voc);j++) if(s[i]==voc[j]) cout<<s[i]; }
Problema 15
Se considera variabila c, de tip char, care memoreaza o litera a alfabetului englez, diferita de z sau Z. Scrieti secventa de program C/C++ care afiseaza pe ecran litera care îi urmeaza în alfabet.
Exemplu: daca litera memorata este g se va afisa h.
char c; cin>>c; if(c!='z' && c!='Z') cout<<char(c+1)
Problema 16
Sa se scrie o functie care verifica daca un sir de caractere este compus în întregime din cifre. Folosind aceasta functie, sa se scrie un program care citeste de la intrare siruri de caractere (câte unul pe fiecare linie) pâna la întâlnirea caracterului EOF si afiseaza inversat (de la dreapta la stânga) fiecare sir citit, exceptând sirurile compuse doar din cifre, care se vor afisa nemodificate.#include <stdio.h> #include <string.h> #include <ctype.h> int numar(char * s) { int i=0; while(s[i]) if (!isdigit(s[i++])) return 0; /* s-a gasit un caracter non-cifra */ return 1; /* toate caraterele sunt cifre */ } void main() { char sir[80], c; short i, j; while (gets(sir)!=NULL) { if (!numar(sir)) /* se interschimba prin intermediul lui c elementele aflate pe pozitii simetrice in raport cu mijlocul sirului */ for (i=0, j=strlen(sir)-1; i<j; ++i, --j) c=sir[i], sir[i]=sir[j], sir[j]=c; puts(sir); } }