Sunteți pe pagina 1din 3

Compararea a 2 siruri de caractere

Se realizeaza prin compararea codurilor ASCII ale


caracterelor de pe pozitii idendice din cele 2 siruri
comparate.
Daca lungimea celor 2 siruri este diferita atunci sirul cu
lungimea mai mica este completat la sfarsit cu caracterul nul
care are codul ASCII 0 pana cand se ajunge la lungimea
sirului mai mare.
Ex: idee>idEE
marina<marinata
Pentru a compara 2 siruri de caractere vm folosi functiile:
strcmp(s1,s2);
Functia intoarce una din valorile
>0 daca s1>s2
=0 daca s1=s2
<0 daca s1<s2
stricmp(s1,s2);
Functia compara 2 siruri de caractre la fel ca si functia
anterioara dar nu face diferenta intre literele mici si
literele mari.
EX: idee=IDEE
strncmp(s1,s2,nr);
Functia compara primele nr carcatere din cele 2 siruri de
carcatere returnand aceleasi valori ca si prima functie.
strncmpi(s1,s2,nr)
Functia compara primele nr carcatere din cele 2 siruri fara
sa tina cont de diferenta dintre literele mari si literele mici.
Aplicatii:

1.Sa se ordoneze alfabetic o multime de n cuvinte citite de


la tastatura fiecare cuant avand maxim 24 caratere.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{char a[20][25],aux[25];
int n,i,j;
cout<<"n="; cin>>n;
for(i=0;i<n;i++)
{cout<<"Introdu sirul:"<<i+1<<' :';
cin.get();
cin.get(a[i],25);
}
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(a[i],a[j])>0);
{
strcpy(aux,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],aux); }
for(i=0;i<n;i++)
cout<<a[i]<<endl; return 0;}
2.Sa verifice daca un cuvant cu maim 24 de carctere este
palindrom.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{char [25],ogl[25];
int i=0,j=0;
x=s[25];
cin.get(s1,25);
for(i=strlen(s)-1;i<=0;i--)
{ogl[j]=s[i]; j++;}
ogl[j]=\0;
if(strcmp(s1,ogl)==0)
cout<<palindrom;
else
cout<<nu e palindrom;
return 0;
}

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