Probleme


1.Se consideră declararea char e[20]=”51+73”;. Care este şirul memorat de variabila e după executarea instrucţiunii de mai jos?
strcpy(e,strchr(e,’+’)+2);
  
   2.Se consideră variabila s care memorează şirul de caractere CARACATITA. Ce valoare va avea s după executarea instrucţiunii de mai jos?strcpy(s,strstr(s,"TI"));

  3.În secvenţa de instrucţiuni de mai jos, variabila s memorează un şir de caractere format doar din litere ale alfabetului englez, iar variabilele i şi n sunt de tip int. Ştiind că în urma executării secvenţei s-a afişat succesiunea de caractere eied*eael* scrieţi care este şirul de caractere memorat de variabila s.
n=strlen(s);
for(i=0;i<n;i++)
if (s[i]==’e’) cout<<’*’;

else cout<<'e'<<s[i];

4. În secvenţa de instrucţiuni de mai jos, variabila s memorează un şir de caractere format doar din litere ale alfabetului englez, iar variabilele i şi n sunt de tip int. Ştiind că în urma executării secvenţei s-a afişat succesiunea de caractere eied*eael* scrieţi care este şirul de caractere memorat de variabila s.
n=strlen(s);
for(i=0;i<n;i++)
if (s[i]==’e’) cout<<’*’;
else cout<<'e'<<s[i];

5. Fie s o variabilă ce memorează un şir de caractere, format doar din litere ale alfabetului englez, şi i o variabilă de tip int. Scrieţi instrucţiunile ce pot înlocui punctele de suspensie din secvenţa de program alăturată astfel încât executarea ei să determine eliminarea tuturor literelor mici din şirul s şi apoi afişarea şirului obţinut.
i=0;
while (i<strlen(s))
...............
cout<<s;

6. Variabila s este de tip şir de caractere, iar variabilele c1 şi c2 sunt de tip char. Care
expresie are valoarea 1 dacă şi numai dacă şirul de caractere s conţine caracterele memorate de variabilele c1 şi c2?
a. strstr(s,c1+c2)!=0
b. strchr(s,c1)!=0 || strchr(s,c2)!=0
c. strchr(strchr(s,c1),c2)!=0
d. strchr(s,c1)*strchr(s,c2)!=0

7. Se consideră variabila s care memorează şirul de caractere CARACATITA. Ce valoare va avea s după executarea instrucţiunii de mai jos?
strcpy(s,strstr(s,"TI"));

8. Ce se va afişa în urma executării secvenţei de program alăturate, considerând că a este o variabilă de tip şir de caractere, iar i o variabilă de tip întreg?
char a[10]="Examen";
for (i=0;i<=2;i++)
strcpy(a+i,a+i+1);

9. Care vor fi valorile afişate după executarea secvenţei de program alăturate?
char s1[20]=”algoritm”,
s2[20]=”bioritm”,s3[20]=”ritm”;
if (strlen(s1)< strlen(s2))
strcat(s3,s1);
else
strcat(s3,s2);
cout<<s1<<’ ’<<s2<<’ ’<<s3;
a. algoritmritm bioritm ritm
b. algoritm bioritm ritmalgoritm
c. algoritm bioritm ritmbioritm
d. algoritm bioritmritm ritm

10. În secvenţa alăturată, fiecare dintre variabilele x şi s sunt de tipul şir de caracter, iar i este de tip întreg. Dacă variabilele x şi s memorează iniţial şirul absolvent, ce se va memora în variabila x în urma executării secvenţei alăturate?
for(i=0; i<strlen(s); i++)
if(strcmp(x, s+i)<0)
strcpy(x,s+i);

11.Ce se va afişa în urma executării secvenţei de program de mai jos dacă variabila x memorează cuvântul bacalaureat, iar variabila y memorează cuvântul banal?
if(strcmp(x, y) > 0) cout << x;
else
if(strcmp(x,y) < 0) cout << y;
else cout << “imposibil”;

12. Ce se va afişa în urma executării secvenţei de program alăturate ştiind că i este o variabilă de tip întreg, iar variabila x este de tip şir de caractere?
strcpy(x, “ExAMeNe NaTiOnALe”);
for(i = 0; i < strlen(x); i++)
if(x[i] >= ‘A’ && x[i] <=’N’)
x[i] = x[i] + ‘a’-‘A’;
cout << x;

13. Un şir de caractere se numeşte palindrom dacă şirul citit de la stânga la dreapta este identic cu şirul citit de la dreapta spre stânga. Care dintre următoarele expresii C/C++ are valoarea 1 dacă şi numai dacă şirul de caractere memorat în variabila s, având exact 3 caractere, este palindrom?
s[0]==s[1] b. s[1]==s[2] c. s[0]==s[2] d. s[1]==s[3]

14.Ştiind că variabila i este de tip întreg şi variabila s reţine un şir de caractere, ce se va afişa la executarea secvenţei alăturate?
strcpy(s,”bac2009”);
for(i=0;i<strlen(s);i++)
if(s[i]<’0’||s[i]>’9’)
cout<<s[i];

15. Variabila s reţine un şir de caractere format din cel puţin 2 şi cel mult 30 de litere mici ale alfabetului englez. Scrieţi secvenţa de program C/C++ care afişează pe ecran primul şi ultimul caracter al şirului s.

16. Ce valoare are variabila s de tip şir de caractere după executarea instrucţiunilor de mai jos?
strncpy(s,strstr(″examen″,″am″),4); s[4]='\0';

17. Ce valoare are variabila s de tip şir de caractere după executarea instrucţiunilor de mai jos?
strncpy(s,strstr("Informatica","form"),strlen("BAC08")); s[5]='\0';

18. Ce valoare are variabila s de tip şir de caractere după executarea instrucţiunii de mai jos?
s=strcat(strstr("bacalaureat", "bac")+ strlen("2009"),"09");

19. Care va fi şirul de caractere afişat după executarea secvenţei de program alăturate, în care variabila s memorează un şir cu cel mult 5 caractere ?
char s[]=”raton”;
s[1]=s[3];
cout<<s;
20. Care va fi şirul de caractere afişat pe ecran după executarea secvenţei de program alăturate în care variabila s memorează un şir cu cel mult 4 caractere iar variabila t un caracter?
char s[]=”arac”;
t=s[1]; s[1]=s[3];
s[3]=’t’;
cout<<s;

21. În secvenţa alăturată, variabilele s1, s2 şi s3 reţin şiruri de caractere. După executarea acesteia, variabila întreagă val primeşte valoarea 1 dacă:
if(!(strcmp(s1,s2) || strcmp(s1,s3)))
val=1;
else val=2;
a. s1, s2, s3 reţin şiruri identice de caractere
b. s1, s2, s3 reţin şiruri de caractere ordonate lexicografic
c. s1, s2, s3 reţin şiruri de caractere de lungimi diferite
d. s1 este obţinut prin concatenarea şirurilor reţinute în s2 şi s3

22. Care este valoarea expresiei strlen(s) pentru variabila s de tip şir de caractere, declarată şi iniţializată astfel:
 char s[15]=”Proba_E”;

23. Ce se va afişa în urma executării secvenţei alăturate, în care variabila c memorează un şir cu cel mult 20 de caractere, iar i este o variabilă de tip întreg?
char c[21]="tamara",*p;
for(i=0;i<strlen(c);i=i+1)
{ p=strchr(c,'a');
cout<<p-c; }

24. Ce se va afişa în urma executării secvenţei alăturate, în care variabila c memorează un şir cu cel mult 20 de caractere, iar variabila i este de tip întreg?
char c[]="tamara";
for(i=0;i<3;i++)
c[i]=c[i+1];
cout<<c;

25. Ştiind că în urma executării secvenţei alăturate s-a afişat succesiunea de caractere EXAMEN, care este şirul de caractere memorat de variabila s?
x=strlen(s);
for (i=0;i<x/2;i++)
cout<<s[i]<<s[x-i-1];

26. Considerăm că variabila s memorează şirul de caractere examen. Care va fi valoarea lui s după executarea instrucţiunilor scrise alăturat?
s[0]= ‘E’;
s[strlen(s)-1]= ‘A’;
s[strlen(s)/2-1]= ‘N’;
s[strlen(s)/2]= ‘M’;

27. Ce se afişează pe ecran în urma executării secvenţei de program scrisă alăturat, în
care i este o variabilă de tip char?
for (i='a';i<='z';i++)
if (strchr("info",i))
cout<<i;

28. Ce se afişează pe ecran în urma executării secvenţei de program alăturate, unde a este o variabilă de tip şir de caractere?
strcpy(a,"informatica");
strcpy(a+2,a+5);
cout<<a;

29. Ce valoare se va afişa pe ecran în urma executării secvenţei de program alăturate, ştiind că variabila a este de tip şir de caractere, iar i este o variabilă de tip întreg?
strcpy(a,"info");
for(i=0;i<strlen(a);i++)
a[i]=a[i]+1;
cout<<a;







PROBLEMA 1

Se citeşte de la tastatura o propoziţie terminata cu ENTER. Cuvintele ce formează propoziţia sunt despărţite printr-un singur spaţiu.    Sa se afişeze fiecare cuvânt din propoziţie pe cate un rând.

char s1[150], s2[150];

void main (void)
{
     gets (s1);
     int i=0, j;
     while (s1[i])
       {
         j=0;
         while ((s1[i]!=' ')&&(s1[i]!='\0')) s2[j++]=s1[i++];
         s2[j]='\0';
         i++;
         cout << endl<< s2;
  }
 }



PROBLEMA 2
Se citeşte de la tastatura o propoziţie terminata cu PUNCT    Cuvintele ce formează propoziţia sunt despărţite prin unul sau mai multe spatii    Sa se afişeze fiecare cuvânt din propoziţie pe cate un rând.
char s1[150], s2[150];
void main (void)
{
     int i, j;
     for (i=0; (s1[i]=getche())!='.'; i++);

     s1[i]='\0';     i=0;
     while (s1[i])
      {
          j=0;
          while ((s1[i]!=' ') && (s1[i]!='\0'))
                s2[j++]=s1[i++];
          s2[j]='\0';
          while (s1[i] && s1[i]==' ') i++;
          cout << endl<< s2;
  }
}
PROBLEMA 3
Se citeşte de la tastatura o propoziţie terminata cu PUNCT    Cuvintele ce formează propoziţia sunt despărţite prin unul sau mai multe spatii.  Sa se calculeze de cate ori apare fiecare litera din propoziţie in propoziţie.

char s1[150], s2[150], c;
int nr;
void main (void)
{
clrscr();

     int i=0, j;
     for (; (s1[i]=getche())!='.'; i++);

     for (c='a'; c<='z'; c++)
     {
          i=0; nr=0;
          while (s1[i])
                {
                     if (s1[i]==c) nr++;
                     i++;
                }
           if (nr==1) cout <<endl<<"Litera "<<c<<" apare o singura data";
           if (nr>1) cout <<endl<<"Litera "<<c<<" apare de "<<nr<< " ori";
     }
for (c='A'; c<='Z'; c++)
     {
          i=0; nr=0;
          while (s1[i])
                {
                     if (s1[i]==c) nr++;
                     i++;
                }
           if (nr==1) cout <<endl<<"Litera "<<c<<" apare o singura data";
           if (nr>1) cout <<endl<<"Litera "<<c<<" apare de "<<nr<< " ori";
     }
getch();
}


PROBLEMA 4
Se citeste o propozitie terminata cu punct.  Cuvintele sunt despartite printr-un singur spatiu.
Sa se afiseze fiecare cuvant din propozitie pe cate un rand si in dreapta sa inversul sau.

char s[200], p[30], q[30];
int i,j,k;

void main (void)
{
clrscr();

     for (i=0; (s[i]=getche())!='.';i++);
     s[i]=’\0’;

     for (i=0,cout<<endl ; s[i] ; i++,cout<<q<<endl)
     {
          for (j=0; s[i] && s[i]!=32; p[j++]=s[i++]);
          p[j]=0;

          for(k=0,cout<<p<<" "; j ; q[k++]=p[--j]);
          q[k]=0;
     }

getch();
}

PROBLEMA 5
Se citeşte o propoziţie terminată cu punct.  Cuvintele sunt despărţite printr-un singur spaţiu.  Să se înlocuiască fiecare litera mică din şir cu litera mare corespunzătoare si fiecare litera mare cu litera mică corespunzătoare.

char s[200];
int i;

void main (void)
{
clrscr();
     for (i=0; (s[i]=getche())!='.';i++);
     s[i]=0;
     cout <<endl; puts(s);
     for (i=0;s[i];i++)
          if (('a'<=s[i]) && (s[i]<='z'))
                s[i]-=32;
          else
                if (('A'<=s[i]) && (s[i]<='Z'))
                     s[i]+=32;

     cout <<endl; puts(s);
getch();
}


PROBLEMA 6

Se citeşte un cuvânt. Să se decidă dacă este palindrom.

char s[200],ok=1;
int i,j;

void main (void)
{
clrscr();
     cin >> s;
     for (i=0; s[i]; i++);
     for (j=0; j<=(i-1)/2+(i-1)%2 && ok; j++)
          ok=(s[j]==s[i-1-j]);
     ok ? cout<<"DA": cout<<"NU";
getch();
}


PROBLEMA 7

Se citeşte o propoziţie terminată cu punct.  Cuvintele sunt despărţite printr-un singur spaţiu. Să se afiseze cuvântul de lungime maximă.
char s[200];
int i,j,k=0, max=0, poz_max=0;
void main (void)
{
clrscr();
            for (i=0; (s[i]=getche())!='.';i++);
     s[i]=0;

     for (i=0; s[i] ; i++)
     {
          for (j=0, k=i; s[i] && s[i]!=32; i++,j++);
          if (j>max)
                {
                     max=j;
                     poz_max=k;
                }
     }
     for (cout<<endl,i=poz_max; s[i]&&s[i]!=' '; cout<<s[i++]);
getch();
}



PROBLEMA 8

 Se citesc 2 cuvinte a si b. Sa se determine daca sunt anagrame.


#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
  char a[30],b[30];
  cin>>a>>b;
  if(strlen(a)!=strlen(b)) cout<<"nu";
  else
  {
      int ok=1;
      while(strcmp(a,b)!=0 && ok)
      {
          if(strchr(b,a[0])!=0)
          {
              strcpy(strchr(b,a[0]), strchr(b,a[0])+1);
              strcpy(a,a+1);
          }    
          else ok=0;
      }           
     if(ok) cout<<"da";
     else cout<<"nu";
  }    
  system("PAUSE"); 
  return 0;
}
 
 
PROBLEMA 9 

Spunem ca doua cuvinte "rimeaza" daca sufixele incepand de la ultima vocala sunt identice. Sa se scrie un program care citeste doua cuvinte a si b si determina daca ele "rimeaza".
Ex: Diana si Sana "rimeaza"



#include<iostream.h>
#include<string.h>
int main()
{
   char a[100], b[100], s1[100], s2[100],v[]="aeiou";
   cin>>a>>b;
   int i;
   for(i=0;i<strlen(a);i++)
    if(strchr(v,a[i]))
    strcpy(s1,a+i);
   for(i=0;i<strlen(b);i++)
    if(strchr(v,b[i]))
    strcpy(s2,b+i);
   if(strcmp(s1,s2)==0)
    cout<<"Rimeaza.";
   else
    cout<<"Nu rimeaza.";
  return 0;
}
 
PROBLEMA 10 

Se citeste un cuvant a cu cel mult 100 de litere. Sa se stearga toate 
perechile de cate 2 litere alaturate identice. Daca prin stergere se 
obtin alte perechie de litere identice sa se stearga si acestea.

Exemplu: din cuvantul abbapxsiisxh se obtine ph (prin eliminari succesive:aapxssxh, pxxh si apoi ph )
 
 
 
 
int main()
{
    char a[100];
    int i;
    cin >> a;
    for ( i = 0 ; i < strlen(a) - 1; i++ )
    {
        if ( a[i] == a[i+1] )
        {
             strcpy ( a + i , a + i + 2 );
             i--;
             i--;
        }
    }
    cout << a;
    system("pause");
    return 0;
} 
 
 
PROBLEMA 11 

Din fisierul sir.in se citeste un text. Afisati cate cuvinte incep si se termina cu vocala.

Ex: Ana are opt mere

se va afisa 2.
 
 #include<iostream>
#include<fstream>
using namespace std;

int main()
{
 char s[201], v[]="aeiouAEIOU";
 int k=0;
 ifstream fin("sir.in");
 while(fin>>s)
  if(strchr(v,s[0]) && strchr(v,s[strlen(s)-1])) k++;
 if(k) cout<<k;
 else cout<<"nu exista";
 return 0;
}
 
PROBLEMA 12 


 Se citeste un cuvant c cu cel mult 20 de litere. Sa se elimine din cuvantul c toate aparitiile primei litere.

Exemplu:

c="anamaria"

dupa prelucrare ramane "nmri"
 
 #include <iostream>
#include <cstring>
using namespace std;

int main()
{
    char c[21],x;
    cin>>c;
    x=c[0];
    for(int i=0;i<strlen(c);i++)
        if(x==c[i])
        {
            strcpy(c+i,c+i+1);
            i--;
        }
    cout<<c;
    return 0;
}
 
PROBLEMA 13 


Se citeste un numar natural n si apoi n cuvinte formate din cel mult 20 
de litere fiecare. Da se afiseze cel mai lung cuvant care se poate forma
 cu doua cuvinte dintre cele citite.

Exemplu:

6

arici

iepure

cal 

hipopotam

oaie

pastrav

Cel mai lung cuvant poate fi hipopotampastrav sau pastravhipopotam 
 
 #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<<m2;
    return 0;
}
 
 
PROBLEMA 14 


Se citeste de la tastatura un text cu cel mult 100 de caractere (doar litere ale alfabetului englez si spatii). Construiti si apoi afisati pe ecran sirul de caractere obtinut din sirul initial prin inserarea dupa fiecare vocala a caracterului *. Se considera vocale literele a, e, i, o, u, A, E, I, O, U.
Daca textul citit nu contine vocale text se va afisa nemodificat.
Exemplu: dacã se citeste textul "Examenul de bacalaureat" se va obtine si afisa: "E*xa*me*nu*l de* ba*ca*la*u*re*a*t".



#include<iostream>
#include<cstring>
using namespace std;
int main()
{  char v[]="aeiouAEIOU", s[201], aux[201];
   int i;
   cin.get(s,100);
   for(i=0;i<strlen(s);i++)
  if(strchr(v,s[i]))
    { strcpy(aux,s+i);
   strcpy(s+i+1,aux);
   s[i+1]='*';
    }
   cout<<s;
return 0;
}
 
PROBLEMA 15

Se citeste de la tastatura un cuvant cu cel putin una si cel mult 20  de
 litere ale alfabetului englez. Construiti si afisati pe ecran cuvantul 
obtinut prin interschimbarea primei consoane cu ultima vocala din 
cuvantul citit. In cazul in care cuvantul este  format numai din vocale 
sau numai din consoane, afisati pe ecran mesajul IMPOSIBIL. Se considera
 vocale literele a, e, i, o, u, A, E, I, O, U. 

Exemplu: dacã se citeste cuvantul Marmorat se va obtine si afisa cuvantul aarmorMt

 
 #include<iostream>
#include<cstring>
using namespace std;
int main()
{ char s[20], v[]="aeiouAEIOU";
  int i,j;
  cin>>s;
  i=0;
  while(strchr(v,s[i])!=0 && i<strlen(s)) i++;
  j=strlen(s)-1;
  while(strchr(v,s[j])==0 && j>=0) j--;
  if(i>=strlen(s) || j==-1) cout<<"imposibil";
  else
  { char aux=s[i];
    s[i]=s[j];
    s[j]=aux;
    cout<<s;
  }
return 0;
}
PROBLEME REZOLVATE
1. 
Se citeste un cuvant format din litere mici. Sa se afiseze cuvintele care se obtin prin eliminarea succesiva a primei si ultimei litere din cuvantul citit.
Ex: Daca de citeste cuvantul alina se vor afisa:
alina
lin
i
#include<iostream.h>
#include<string.h>
int main()
{
 char a[100];
 cin>>a;
 while(strlen(a)>0)
  { cout<<a;
    cout<<endl;
    strcpy(a,a+1);
    strcpy(a+strlen(a)-1,a+strlen(a));
  }
 return 0;
}
2.
Se citeste un sir de caractere format din cel mult 100 de caractere. Sa se numere si sa se stearga vocalele din sir.
Ex: Pentru sirul abracadabra se afiseaza
5 si brcdbr
#include<iostream.h>
#include<string.h>
int main()
{
 char a[101],v[]="aeiouAEIOU";
 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;
}
3. 
Se citeste un cuvant format din litere mici. Sa se inlocuiasca fiecare vocala mica din cuvant cu vocala mare corespunzatoare.
Ex: Cuvantul algoritm se va transforma in AlgOrItm.
#include<iostream.h>
#include<string.h>

void main()
{ char v[]="aeiou";
  char s[40];
  int i;
  cin>>s;
  for(i=0;i<strlen(s);i++)
    if(strchr(v,s[i])!=0) s[i]=s[i]+'A'-'a';
  cout<<s;
}
4.
Se citeste un cuvant s format din maxim 200 de litere mici. Sa se elimine toate perechile de cate 2 litere alaturate identice.
Ex: din annaaalina se obtine lina 
#include<iostream.h>
#include<string.h>
void main()
{ char s[200];
 int i=0;
 cin>>s;
 while(i<strlen(s)-1)
 { if(s[i]==s[i+1])
   { strcpy(s+i,s+i+2);
     if(i>0) i=i-1;
   }
   else i++;
 }
 cout<<s;
 }
5.
Se citeste un cuvânt format doar din litere mici. Sa se permute circular spre stânga literele din el si sa se afiseze cuvântul astfel obtinut.
Ex. Alina => linaA 
#include <iostream>
#include <stdlib.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;
}
6. 
Se citeste un text scris cu litere mici si spatii. Sa se înlocuiasca în fiecare cuvânt din text prima si ultima litera cu literele mari corespunzatoare.
Ex. ana are mere => AnA ArE MerE 
#include <iostream>
#include <stdlib.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;
}
7.
Se citeste un cuvânt format din numar par de litere. Sa se interschimbe litera de pe prima pozitie cu cea de pe a doua, a treia cu a patra, etc.
Ex. cosmin => ocmsni 
#include <iostream>
#include <stdlib.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;
}
8.
Se citeste un text scris cu litere mici si spatii. Sa se codifice textul prin înlocuirea fiecarei litere cu urmatoarea din alfabet, litera ‘z’ înlocuindu-se cu ’a’ .
Ex. ana are mere => bob bsf nfsf 
#include <iostream>
#include <stdlib.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;
}
PROBLEME REZOLVATE
1. 
Se citeste un cuvant format din litere mici. Sa se afiseze cuvintele care se obtin prin eliminarea succesiva a primei si ultimei litere din cuvantul citit.
Ex: Daca de citeste cuvantul alina se vor afisa:
alina
lin
i
#include<iostream.h>
#include<string.h>
int main()
{
 char a[100];
 cin>>a;
 while(strlen(a)>0)
  { cout<<a;
    cout<<endl;
    strcpy(a,a+1);
    strcpy(a+strlen(a)-1,a+strlen(a));
  }
 return 0;
}
2.
Se citeste un sir de caractere format din cel mult 100 de caractere. Sa se numere si sa se stearga vocalele din sir.
Ex: Pentru sirul abracadabra se afiseaza
5 si brcdbr
#include<iostream.h>
#include<string.h>
int main()
{
 char a[101],v[]="aeiouAEIOU";
 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;
}
3. 
Se citeste un cuvant format din litere mici. Sa se inlocuiasca fiecare vocala mica din cuvant cu vocala mare corespunzatoare.
Ex: Cuvantul algoritm se va transforma in AlgOrItm.
#include<iostream.h>
#include<string.h>

void main()
{ char v[]="aeiou";
  char s[40];
  int i;
  cin>>s;
  for(i=0;i<strlen(s);i++)
    if(strchr(v,s[i])!=0) s[i]=s[i]+'A'-'a';
  cout<<s;
}
4.
Se citeste un cuvant s format din maxim 200 de litere mici. Sa se elimine toate perechile de cate 2 litere alaturate identice.
Ex: din annaaalina se obtine lina 
#include<iostream.h>
#include<string.h>
void main()
{ char s[200];
 int i=0;
 cin>>s;
 while(i<strlen(s)-1)
 { if(s[i]==s[i+1])
   { strcpy(s+i,s+i+2);
     if(i>0) i=i-1;
   }
   else i++;
 }
 cout<<s;
 }
5.
Se citeste un cuvânt format doar din litere mici. Sa se permute circular spre stânga literele din el si sa se afiseze cuvântul astfel obtinut.
Ex. Alina => linaA 
#include <iostream>
#include <stdlib.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;
}
6. 
Se citeste un text scris cu litere mici si spatii. Sa se înlocuiasca în fiecare cuvânt din text prima si ultima litera cu literele mari corespunzatoare.
Ex. ana are mere => AnA ArE MerE 
#include <iostream>
#include <stdlib.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;
}
7.
Se citeste un cuvânt format din numar par de litere. Sa se interschimbe litera de pe prima pozitie cu cea de pe a doua, a treia cu a patra, etc.
Ex. cosmin => ocmsni 
#include <iostream>
#include <stdlib.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;
}
8.
Se citeste un text scris cu litere mici si spatii. Sa se codifice textul prin înlocuirea fiecarei litere cu urmatoarea din alfabet, litera ‘z’ înlocuindu-se cu ’a’ .
Ex. ana are mere => bob bsf nfsf 
#include <iostream>
#include <stdlib.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;
}
  

Un comentariu: