Exercitii rezolvate

1. Se citesc de la tastatura 2 siruri de caractere. Sa se afiseze care sir este mai mare din punct de vedere lexicografic.
#include<iostream.h>
#include<string.h>
void main()
{int i,n; char a[100],b[100];
cout<<"sir1=";cin>>a;
cout<<"sir2=";cin>>b;
n=strcmp(a,b);
if(n==0) cout<<"siruri egale";
else if(n<0) cout<<a<<">"<<b;
else cout<<b<<">"<<a;
}

2. Se citesc de la tastaura 2 siruri de caractere. Sa se verifice daca fara a face diferenta intre literele mari si mici cele 2 siruri reprezinta acelasi sir. De exemplu: a="Abc" si b="AbC" => cele 2 siruri coincid
#include<iostream.h>
#include<string.h>
void main()
{int i,n; char a[100],b[100];
cout<<"sir1=";cin>>a;
cout<<"sir2=";cin>>b;
strupr(a);
strupr(b);
if(strlen(a)==strlen(b)) {
        i=0;
        while(i<strlen(a)&&a[i]==b[i]) i++;
        if (i==strlen(a)) cout<<"da";
            else cout<<"nu";
            }
else cout<<"nu";
 }

3. Sa se afiseze literele comune din 2 siruri de caractere (de pe aceiasi pozitie) fara a se face distinctie intre literele mari si mici.
#include<iostream.h>
#include<string.h>
void main()
{int i,n; char a[100],b[100];
cout<<"sir1=";cin>>a;
cout<<"sir2=";cin>>b;
strupr(a);
strupr(b);
for(i=0;i<strlen(a);i++)
if(a[i]==b[i]) cout<<a[i];

    }

4. Sa se interschime continutul a doua siruri de caractere.
#include<iostream.h>
#include<string.h>
void main()
{int i,n; char a[100],b[100],c[100];
cout<<"sir1=";cin.get(a,100);cin.get();
cout<<"sir2=";cin.get(b,100);
strcpy(c,a);
strcpy(a,b);
strcpy(b,c);
cout<<a<<" "<<b;
}

5. Sa se verifice daca un sir indeplineste proprietatea de palindrom. De exemplu: a="assa" - palindrom; b="assb" - nu e palindrom
#include<iostream.h>
#include<string.h>
void main()
{int j,i,n; char a[100],b[100],c[1];
cout<<"sir1=";cin.get(a,100);
n=strlen(a);
i=0;
j=n-1;
while(i<j && a[i]==a[j]) {i++;j--;}
if(i>=j)cout<<"da";
else cout<<"nu";
}

6. Se citeste un sir de caractere de la tastatura. Sa se scrie sirul transformand majusculele in litere mici.
#include<iostream.h>
#include<string.h>
void main()
{int j,i,n; char a[100],b[100],c[1];
cout<<"sir1=";cin.get(a,100);
strlwr(a);
cout<<a;}

7. Sa se determine frecventa de aparitie a unui caracter intr-un sir de caractere.
#include<iostream.h>
#include<string.h>
void main()
{int c=0,i,n; char a[100],ch;
cout<<"dati sirul "; cin.get(a,100);
cout<<"dati caracterul ";cin>>ch;
for(i=0;i<strlen(a);i++)
if(a[i]==ch)  c++;
cout<<c;
}

8. Sa se genereze toate prefixele / sufixele unui cuvant. (vom afisa prefixele)
#include<iostream.h>
#include<string.h>
void main()
{int i,j,n; char a[100];
cout<<"dati sirul "; cin.get(a,100);
for(i=0;i<strlen(a);i++){
    for(j=0;j<=i;j++)
        cout<<a[j];
    cout<<endl;
    }
}

9. Se citeste un text caracter c. Sa se determine de cate ori se gaseste caracterul in text (nu se face distinctie intre literele mari si literele mici).
#include<iostream.h>
#include<string.h>
void main()
{int c=0,i,n; char a[100],ch[1];
cout<<"dati sirul "; cin.get(a,100);
cout<<"dati caracterul ";cin>>ch;
strupr(ch);strupr(a);
for(i=0;i<strlen(a);i++)
if(a[i]==ch[0])  c++;
cout<<c;
}

10. Se citesc n siruri de caractere. Sa se afiseze sirurile in ordine lexicografica (crescator).
#include<string.h>
#include<iostream.h>
#include<stdio.h>
char a[100][30]; /*vector cu maxim 100 componente de tip sir de caractere*/
int n;
void citire()
{int i;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
    {
    cout<<"a["<<i<<"]=";gets(a[i]);
    }
}
void afisare()
{for (int i=1;i<=n;i++)
    puts(a[i]);
cout<<endl;
}
void sortare()
{int i,j,y;char x[30];
for(i=1;i<=n-1;i++)
    for (j=i+1;j<=n;j++)
      {y=strcmp(a[i],a[j]);
      strcpy(x,"");
      if(y>0){
      strcpy(x,a[i]);
      strcpy(a[i],a[j]);
      strcpy(a[j],x);
      }
    }
}
void main()
{
citire();
afisare();
sortare();
afisare();
}

11. Se citesc de la tastatura maxim 30 de cuvinte. Sa se determine cuvintele de lungime maxima.
#include<string.h>
#include<iostream.h>
#include<stdio.h>
char a[30][30]; /*vector cu maxim 100 componente de tip sir de caractere*/
int n;
void citire()
{int i;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
    {
    cout<<"a["<<i<<"]=";gets(a[i]);
    }
}
void afisare()
{for (int i=1;i<=n;i++)
    puts(a[i]);
cout<<endl;
}
int lungime_maxima()
{
int max=strlen(a[1]);
for(int i=1;i<=n;i++)
    if(strlen(a[i])>max) max=strlen(a[i]);
return max;
}

void sir_lungime_max()
{int max=lungime_maxima();
for (int i=1;i<=n;i++)
    if(strlen(a[i])==max) puts(a[i]);
}
void main()
{
citire();
afisare();
sir_lungime_max();
}

12. Se citeste un cuvant. Sa se afiseze care sunt literele folosite in acest cuvant.
#include<string.h>
#include<iostream.h>
#include<stdio.h>
char a[30];
void main()
{char *este;
cout<<"dati sirul";gets(a);
strlwr(a);
for(char c='a';c<='z';c++)
    {este=strchr(a,c);
    if (este-a>=0) cout<<c;
    }
}

13. Se citeste de la tastaura un text. Sa se afiseze textul in ordine inversa.
#include<string.h>
#include<iostream.h>
#include<stdio.h>
char a[250];
void main()
{
cout<<"dati sirul";cin.get(a,250);
for(int i=strlen(a)-1;i>=0;i--)
    cout<<a[i];
}

14. Se citeşte un text într-o variabilă de tip string, in care cuvintele se despart prin spaţii. Se cere:
a)    Să se afişeze cuvintele în ordine alfabetică;
b)    Să se numere cuvintele cu minim 4 vocale distincte

#include <iostream.h>
#include <conio.h>
#include <string.h>
void main()
{
char text[100],*p, separator[]=" ", cuv[10][10], cuvant[10], aux[10] ; int nrv=0,voc, nr, k, i, j;
cout<<"Dati sirul:";cin.get(text,100);
strcpy(p,text)  ;
p=strtok(p,separator) ;
while(p)
    {
     strcpy(cuv[++nr],p);
     p=strtok(NULL,separator);
    }
for(i=1;i<nr;i++)
  for(j=i+1;j<=nr;j++)
      if(strcmp(cuv[i],cuv[j])>0)
     {
      strcpy(aux,cuv[i]);
      strcpy(cuv[i],cuv[j]);
      strcpy(cuv[j],aux);
     }
for(i=1;i<=nr;i++)
   cout<<cuv[i];
for(i=1;i<=nr;i++)
   {
    voc=0;
    strcpy(cuvant,cuv[i]);
    k=strlen(cuvant) ;
    for(j=0;j<k;j++)
      {switch(cuvant[j])
    {
     case 'a':
     case 'e':
     case 'i':
     case 'o':
     case 'u':{voc++; break;}
    }}
    if (voc>=4) nrv++  ;
   }
cout<<nrv;
getch();
}

15. Se citeşte de la tastatură un cuvânt. Să se afişeze numărul iniţial de caractere ale cuvântului şi apoi să se şteargă toate vocalele din cuvânt.

#include <iostream.h>
#include <conio.h>
#include <string.h>
void main()
{char cuvant[100]; int k,l,j,i;
cin>>cuvant;
    k=strlen(cuvant) ;
    for(j=0;j<k;j++)
      {switch(cuvant[j])
    {
     case 'a':
     case 'e':
     case 'i':
     case 'o':
     case 'u':{for(l=j;l<k;l++) cuvant[l]=cuvant[l+1];k--; break;}
    }}
        cout<<cuvant;}

}

counter for wordpress

View My Stats