Sunteți pe pagina 1din 4

Probleme rezolvate

1. Scrieţi un program C/C++ care citeşte de la tastatură un cuvânt format din cel
mult 20 de caractere, doar litere ale alfabetului englez. Programul determină
transformarea cuvântului citit prin eliminarea fiecărei litere mici a cuvântului,
restul literelor nemodificându-se, ca în exemplu. Programul afişează pe ecran
cuvântul obţinut. În cazul în care cuvântul citit conţine numai litere mici,
programul va afişa mesajul CUVANT VID.
Exemple:
- dacă se citeşte cuvântul: exAMeN se va afişa pe ecran: AMN
- dacă se citeşte cuvântul: vara se va afişa pe ecran: CUVANT VID

#include <iostream>
#include <string.h>
using namespace std;

char sir[21];
int i,j,nrlitmica=0,n;

int main()
{
cin>>sir;

n=strlen(sir);
for(i=0;i<n;i++)
if(sir[i]>='a' && sir[i]<='z')
nrlitmica++; //nr literelor mici

if(nrlitmica==n)
cout<<"CUVANT VID";
else
{
i=0;
while(i<strlen(sir))
if(sir[i]>='a' && sir[i]<='z')
{
for(j=i;j<=strlen(sir)-1;j++)
1
sir[j]=sir[j+1];
sir[strlen(sir)]=0;
}
else
i++;

cout<<sir;
}
return 0;
}

2. Se consideră un text cu maximum 255 de caractere în care cuvintele sunt


separate prin
unul sau mai multe spaţii. Primul caracter din textul citit este o literă, iar cuvintele
sunt
formate numai din litere mici ale alfabetului englez.
Scrieţi un program C/C++ care citeşte de la tastatură textul şi îl transformă
înlocuind prima literă a fiecărui
cuvânt cu litera mare corespunzătoare, restul caracterelor rămânând nemodificate.
Textul astfel transformat va fi
afişat pe ecran.

Exemplu: dacă de la tastatură se introduce textul: mare frig rosu


se va afişa pe ecran: Mare Frig Rosu
*/

#include <iostream>
#include <string.h>
using namespace std;

char s[256];
int i,n;

int main()
{
cin.get(s,256);
n=strlen(s);
if(s[0]!=' ')
s[i]-=32;
for(i=1;i<n;i++)
if(s[i-1]==' '&&s[i]!=' ')
s[i]-=32;

2
cout<<s;
return 0;
}

3. Se consideră un text cu maximum 255 de caractere, format din litere mici ale
alfabetului
englez şi spaţii. Textul conţine cel puţin o consoană. Scrieţi un program C/C++
care citeşte
de la tastatură textul şi afişează pe ecran numai ultima consoană care apare în
text.
Exemplu: dacă de la tastatură se introduce textul: mare frig saci
pe ecran se va afişa: c
*/

#include <iostream>
#include <string.h>
using namespace std;

char s[256],con[]="bcdfghjklmnprstvwxyz";;
int i,n;

int main()
{
cin.get(s,256);
n=strlen(s);
for(i=n-1;i>=0;i--)
if(strchr(con,s[i]))
{
cout<<s[i];
break;
}
return 0;
}

4.
Ce se afişează în urma executării secvenţei de program următoare, dacă variabila
s
memorează şirul de caractere abcdefgh?

strcpy(s+2,s+4);
3
cout<<s<<" "<<strlen(s);

#include <iostream>
#include <string.h>
using namespace std;

char s[256];

int main()
{
cin.get(s,256);

strcpy(s+2,s+4);
cout<<s<<" "<<strlen(s);
return 0;
}

Raspuns: abefgh 6

Probleme propuse

1. Se dă un șir de caractere. Să se determine câte vocale din șir sunt cuprinse


între două consoane.
2. Se consideră un cuvânt format din cel puțin două și cel mult 100 de caractere,
numai litere mici ale alfabetului englez. Scrieţi un program care citeşte de la
tastatură un cuvânt de tipul precizat și afișează pe ecran mesajul DA în cazul
în care cuvântul conține doar consoane şi, eventual, vocala i, sau mesajul NU
în caz contrar.
3. Se dă o propoziție formată din litere mari și mici ale alfabetului englez, cifre,
spații și semne de punctuație, în care literele mari și mici se consideră identice.
Determinați vocala din șir cu număr maxim de apariții. Dacă sunt mai multe
vocale in şir cu număr maxim de apariţii să se tipărească prima dintre acestea.
4. Să se scrie un program care citește un cuvânt și îl afișează după
interschimbarea primei vocale cu ultima consoană.
5. Să se scrie un program care citește un text și inserează după fiecare vocală
caracterul *.

S-ar putea să vă placă și