Compararea lungimii șirurilor este o funcție obișnuită în programarea C, deoarece vă permite să vedeți ce șir conține mai multe caractere. Acest lucru este foarte util pentru sortarea datelor. Compararea șirurilor necesită o funcție specială; nu folosiți! = sau ==.
Pași
Pasul 1. Există două funcții care vă permit să comparați șirurile din C
Ambele funcții sunt incluse în bibliotecă.
- strcmp () - Această funcție compară două șiruri și returnează diferența comparativă în numărul de caractere.
- strncmp () - Acesta este același lucru cu strcmp (), cu excepția faptului că compară primele n caractere. Este considerat mai sigur, deoarece ajută la prevenirea revărsării accidentelor.
Pasul 2. Porniți programul cu bibliotecile necesare
Veți dori atât bibliotecile, cât și bibliotecile, împreună cu orice altele de care aveți nevoie pentru programul dvs. specific.
#include #include
Pasul 3. Porniți un
int funcţie.
Acesta este cel mai simplu mod de a învăța această funcție, deoarece va returna un număr întreg care compară lungimea celor două șiruri.
#include #include int main () {}
Pasul 4. Definiți cele două șiruri pe care doriți să le comparați
Pentru acest exemplu, vom compara două șiruri de caractere predefinite. De asemenea, veți dori să definiți valoarea returnată ca număr întreg.
#include #include int main () {char * str1 = "apple"; char * str2 = "portocaliu"; int ret; }
Pasul 5. Adăugați funcția de comparație
Acum că aveți cele două șiruri definite, puteți adăuga funcția de comparație. Vom folosi strncmp (), deci trebuie să ne asigurăm că numărul de caractere care trebuie măsurat este setat în funcție.
#include #include int main () {char * str1 = "apple"; char * str2 = "portocaliu"; int ret; ret = strncmp (str1, str2, 6); / * Aceasta va compara cele două șiruri de până la 6 caractere * /}
Pasul 6. Folosiți un
Dacă … Altfel declarație pentru efectuarea comparației.
Acum că aveți funcția la locul său, puteți utiliza o instrucțiune If … Else pentru a afișa care șir este mai lung. strncmp () va returna 0 dacă șirurile au aceeași lungime, un număr pozitiv dacă str1 este mai mare și un număr negativ dacă str2 este mai mare.
#include #include int main () {char * str1 = "apple"; char * str2 = "portocaliu"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 este mai lung"); } else if (ret <0) {printf ("str2 este mai lung"); } else {printf ("Cele două șiruri sunt egale"); } return (0); }