Sunteți pe pagina 1din 11

Portofoliu probleme

1. Să se afișeze prima literă a fiecărui cuvânt.


#include <iostream>
#include <cstring>
using namespace std;

int main() {
char propozitie[128] = "Mama gateste
clatite";
char *cuvant = strtok(propozitie, " ");
while(cuvant) {
cout << "cuvant" << " -> ultima litera: " <<
cuvant[ strlen(cuvant) - 1 ] << "\n";
cuvant = strtok(NULL, " ");
}
return 0;
}
2. Programul următor citește un șir de caractere și tipărește șirul obținut prin eliminarea
blank-urilor. In fapt, se separa entitățile, care sunt afișate una după alta.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{char sir[1000], separator[]=" ,", *p;
cin.get(sir,1000);
p=strtok(sir,separator);
while (p)
{ cout<<p;
p=strtok(NULL, separator);
3. Să se afișeze numărul de vocale.
#include <iostream>
#include <cstring>
using namespace std;
bool eVocala(char c) {
if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
return true;
if(c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U')
return true;
return false;
}
int main() {
char propozitie[128] = "Maria isi face temele";
int lungime = strlen(propozitie);
int vocale = 0;
for(int i = 0; i < lungime; i++) {
if(eVocala(propozitie[i])) {
cout << "Vocala: " << propozitie[i] << "\n";
vocale = vocale + 1;
}
}
cout << "Avem: " << vocale << " vocale in text.";
return 0;
4. Palindromul unui cuvânt.
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char cuvant[10];
char palindrom[10];
cin >> cuvant;
int lungime = strlen(cuvant);
palindrom[lungime] = cuvant[lungime];
for(int i = 0; i < lungime; i++) {
palindrom[lungime - 1 - i] = cuvant[i];
}
cout << palindrom;
return 0;
}
5. Să se afișeze cifrele și semnele de punctuație din șir.

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char sir[40]="Azi Am Luat 10 La Informatica?";
int i;
for(i=0;i<strlen(sir);i++)
{
if(isalpha(sir[i])==0)
cout<<sir[i];//se afiseaza spatiile,cifrele si semnul intrebarii
}
}
6. Dacă un subșir se află în șir.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{char sir[1000],subsir[25], *t;
cout<<"introduceti textul ";
cin.get(sir,1000);
cin.get();
cout<<"introduceti subsirul cautat ";
cin.get(subsir,25);
t = strstr(sir,subsir);
if (t) cout<<"este subsir si are indicele "<<t-sir;
else cout<<"nu este subsir";
}
7. Caracterele din primul șir care apar și în al doilea.

#include <iostream>
#include <string.h>
using namespace std;
int main()
{char cuvant1[10], cuvant2[10], *p;
cout<<"introduceti primul cuvant ";
cin>>cuvant1;
cout<<"introduceti al doilea cuvant ";
cin>>cuvant2;
p=strpbrk(cuvant1,cuvant2);
while(p)
{cout<<p[0]<<endl;
p++;
p=strpbrk(p,cuvant2);
}
}
8. Se citește un cuvânt format din litere mici. Să se afiseze cuvintele care se obțin prin
eliminarea succesivă a primei și ultimei litere din cuvântul citit.
#include<iostream>
#include<cstring>
using namespace std;
int main() {
char a[100]="alina";
while (strlen(a)>0)
{
cout << a;
cout << endl;
strcpy(a,a+1);
strcpy(a+strlen(a)-1, a+strlen(a));
}
return 0;
}
9. Să se scoată vocalele și să se numere.

#include<iostream>
#include<cstring>
using namespace std;
int main() {
char a[101],v[]="aieouAEIOU";
cin.get(a,100);
int i,k=0;
for (i>0; i<strlen(a); i++)
if(strchr(v,a[i])!=0)
{k++;
strcpy(a+i, a+i+1);
}
cout<<k<<" "<<a;
return 0;
}
10. Înlocuiți în șirul s toate aparițiile șirului c cu un șir de exact aceeași lungime efectivă cu
c, format doar din caractere *.
#include<iostream>
#include<cstring>
using namespace std;
int main()
{ char s[255], c[20];
cin.get(s,255);
cin.get();
cin.get(c,20);
if(strstr(s,c)==0) cout<<"NU APARE";
else
{ while(strstr(s,c)!=0)
{ char *p=strstr(s,c);
for(int i=0;i<strlen(c);i++)
p[i]='*';
}
cout<<s;
}
return 0;
}
11. Se citesc două cuvinte a și b, fiecare fiind format din cel mult 20 de litere mici. Afișați
pe rânduri separate și separate prin cate un spatiu:
- literele care apar in ambele cuvinte
- literele care apar in cel putin unul dintre cuvinte
- literele care apar in doar unul dintre cuvinte
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[21],b[21];
int F[128]={0},G[128]={0};
cin>>a>>b;
for(int i=0;i<strlen(a);i++)
F[a[i]]=1;
for(int i=0;i<strlen(b);i++)
G[b[i]]=1;
//intersectia
for(char c='a';c<='z';c++)
if(F[c]&&G[c]) cout<<c<<" ";
cout<<endl;
//reuniunea
for(char c='a';c<='z';c++)
if(F[c]||G[c]) cout<<c<<" ";
cout<<endl;
//diferenta simetrica
for(char c='a';c<='z';c++)
if(F[c]+G[c]==1) cout<<c<<" ";
cout<<endl;
return 0;
}
12. Se citesc 3 cuvinte s, a și b, s având cel mult 50 de litere, iar a și b având cel mult 10
litere fiecare. Înlocuiți în cuvântul s toate aparițiile lui a cu b.

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char s[101],a[11],b[11],*p,aux[101];
cin>>s>>a>>b;
while(p=strstr(s,a))
{
strcpy(aux,b);
strcat(aux,p+strlen(a));
strcpy(p,aux);
}
cout<<s;
return 0;
}
//afisati ultima litera din fiecare cuvant si nr de vocale;
#include <iostream>
#include <cstring>
using namespace std;

13. Se citeste un text scris cu litere mici și spații. Să se înlocuiască în fiecare cuvânt din
text prima și ultima literă cu literele mari corespunzatoare.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char s[50],aux;
int i;
cin.get(s,60);
s[0]=s[0]-32;
for(i=1;i<strlen(s)-1;i++)
if(s[i]!=' ' && (s[i+1]==' ' || s[i-1]==' ')) s[i]=s[i]-32;
s[strlen(s)-1]=s[strlen(s)-1]-32;
cout<<s;
system("PAUSE");
return 0;
}
14. Se citeste un cuvânt format doar din litere mici. Sa se permute circular spre stânga
literele din el și să se afișeze cuvântul astfel obținut.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char s[30],aux;
int i;
cin>>s;
aux=s[0];
for(i=0;i<strlen(s)-1;i++) s[i]=s[i+1];
s[strlen(s)-1]=aux;
cout<<s;
system("PAUSE");
return 0;
}
15. Se citește un număr natural n și apoi n cuvinte formate din cel mult 20 de litere fiecare.
Să se afișeze cel mai lung cuvânt care se poate forma cu două cuvinte dintre cele citite.
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[21],m1[21]="",m2[21]="";
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a;
if(strlen(a)>strlen(m1))
{
strcpy(m2,m1);
strcpy(m1,a);
}
else if(strlen(a)>strlen(m2)) strcpy(m2,a);
}
cout<<m1;
return 0;
}
16. Să se mute a treia literă in locul alei doilea și așa mai departe.
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char s[10],x;
int i;
strcpy(s,"clasa");
for(i=0;i<strlen(s)-1;i++)
{
if(s[i]>s[i+1])
{
x=s[i];
s[i]=s[i+1];
s[i+1]=x;
}
cout<<s<<" ";
}
}
17. Se citește un șir de caractere care conține caractere albe. Să se verifice daca șirul este
alcătuit exclusive din caractere numerice.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{char cuvant[100], cifre[]="0123456789";
cout<<"intriduceti cuvantul "; cin>>cuvant;
if (strspn(cuvant,cifre)==strlen(cuvant))
cout<<"numeric";
else cout <<"nenumeric";
}

18. Se citește un cuvânt format din număr par de litere. Să se interschimbe litera de pe
prima pozitie cu cea de pe a doua, a treia cu a patra, etc.

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char s[30],aux;
int i;
cin>>s;
for(i=0;i<strlen(s)-1;i=i+2)
{ aux=s[i];
s[i]=s[i+1];
s[i+1]=aux;
}
cout<<s;
system("PAUSE");
return 0;
}
19. Să se schimbe fiecare litera cu urmatoarea din alfabet.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char s[50],aux;
int i;
cin.get(s,50);
for(i=0;i<strlen(s);i++)
if(s[i]!=' ') if(s[i]=='z') s[i]='a';
else s[i]=s[i]+1;
cout<<s;
system("PAUSE");
return 0;
}

20. Se citesc 2 cuvinte a si b. Să se determine dacă unul dintre ele este sufix al celuilalt.

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char a[20], b[20], *p;
cin>>a>>b;
if(strlen(a)<strlen(b))p=strstr(b+strlen(b)-strlen(a),a);
else p=strstr(a+strlen(a)-strlen(b),b);
if(p)cout<<"da";
else cout<<"nu";
system("pause");
return 0;
}
#include <iostream>
#include <string.h>
using namespace std;
char sir1[101], sir2[101];
int main() {
char sir[101],separator[]=" ,", *p;
cin.get (sir, 101);
int n;
cin>>n;
p=strtok(sir,separator);
while (p)
{ if (strlen(p)<n)
sir2=sir2+ char*p;
else
sir1=sir1+ char*p;
p=strtok(NULL, separator);

}
cout<<n <<endl;
cout<<sir2<< endl;
cout<<sir1<< endl;}

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