Stygas galima palyginti naudojant eilutės funkciją arba nenaudojant eilutės funkcijos. Pirmiausia pažiūrėsime, kaip galime palyginti eilutes naudojant eilutės funkciją, t.y. strcmp (), kuri apibrėžta a eilutė.h antraštės failą.
Eilučių palyginimas naudojant eilutės funkciją
Eilutės funkcija, kuri iš anksto nustatyta a eilutė.h antraštės failas yra a strcmp () funkcija. Funkcija strcmp() laiko dvi eilutes kaip parametrą ir ši funkcija grąžina sveikojo skaičiaus reikšmę, kur sveikojo skaičiaus reikšmė gali būti nulis , teigiamas arba neigiamas .
Strcmp() funkcijos sintaksė pateikta žemiau:
int strcmp (const char* str1, const char* str2);
Aukščiau pateiktoje sintaksėje du parametrai perduodami kaip eilutės, t.y. str1 ir str2 , o grąžinimo tipas yra tarpt reiškia, kad strcmp() grąžina sveikąjį skaičių.
Funkcija strcmp () lygina abiejų eilučių pobūdį. Jei pirmasis abiejų eilučių simbolis yra vienodas, šis palyginimo procesas tęsis tol, kol bus palyginti visi simboliai arba rodyklė nukreips į nulinį simbolį „ “.
Galimos grąžinimo reikšmės iš strcmp() funkcijos
Grąžinimo vertė | apibūdinimas |
---|---|
0 | Kai abi eilutės yra lygios. |
<0< td> | Jei pirmosios eilutės simbolio ASCII reikšmė yra mažesnė už antrosios eilutės simbolio ASCII reikšmę, funkcija grąžins neigiamą reikšmę. | 0<>
>0 | Jei pirmosios eilutės simbolio ASCII reikšmė yra didesnė už antrosios eilutės simbolio ASCII reikšmę, funkcija grąžins teigiamą reikšmę. |
Supraskime per pavyzdį.
#include #include int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array int value; // declaration of integer variable printf('Enter the first string : '); scanf('%s',str1); printf('Enter the second string : '); scanf('%s',str2); // comparing both the strings using strcmp() function value=strcmp(str1,str2); if(value==0) printf('strings are same'); else printf('strings are not same'); return 0; }
Aukščiau pateiktos programos analizė
- Mes paskelbėme du char tipo masyvus, ty str1 ir str2. Mes priimame vartotojo įvestį kaip eilutes.
- Mes lyginame eilutes naudodami strcmp () funkcija, t.y. strcmp (str1, str2). Ši funkcija palygins ir str1, ir str2 eilutes. Jei funkcija grąžina 0 reikšmę, reiškia, kad abi eilutės yra vienodos, kitu atveju eilutės nėra lygios.
Išvestis:
Eilučių palyginimas nenaudojant strcmp() funkcijos
#include int compare(char[],char[]); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf('Enter the first string : '); scanf('%s',str1); printf('Enter the second string : '); scanf('%s',str2); int c= compare(str1,str2); // calling compare() function if(c==0) printf('strings are same'); else printf('strings are not same'); return 0; } // Comparing both the strings. int compare(char a[],char b[]) { int flag=0,i=0; // integer variables declaration while(a[i]!=' ' &&b[i]!=' ') // while loop { if(a[i]!=b[i]) { flag=1; break; } i++; } if(flag==0) return 0; else return 1; }
Aukščiau pateiktos programos analizė
- Aukščiau mes paskelbėme du char tipo masyvus, o vartotojo įvestį imame kaip eilutes.
- Apibrėžėme palyginimo () funkciją, kuri kaip parametrą naudos vartotojo įvesties eilutes ir palygins abi eilutes. Jei funkcija grąžina 0, tai reiškia, kad abi eilutės yra lygios, kitaip abi eilutės nėra lygios .
Išvestis:
Eilučių palyginimas naudojant rodykles
#include int stringcompare(char*,char*); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf('Enter the first string : '); scanf('%s',str1); printf(' Enter the second string : '); scanf('%s',str2); int compare=stringcompare(str1,str2); // calling stringcompare() function. if(compare==0) printf('strings are equal'); else printf('strings are not equal'); return 0; } // Comparing both the strings using pointers int stringcompare(char *a,char *b) { int flag=0; while(*a!=' ' && *b!=' ') // while loop { if(*a!=*b) { flag=1; } a++; b++; } if(flag==0) return 0; else return 1; }
Aukščiau pateiktos programos analizė
- Sukūrėme du char tipo str1 ir str2 masyvus. Mes priimame vartotojo įvestį kaip eilutes.
- Apibrėžėme funkciją stringcompare(), kuri kaip parametrą paims dvi char tipo rodykles. Žymeklis „a“ turi str1 adresą, o „b“ – str2 adresą. Funkcijos viduje sukūrėme ciklą, kuris bus vykdomas tol, kol rodyklė a arba b nepasieks nulinio simbolio.
Išvestis: