La comparació de la longitud de la cadena és una funció habitual en la programació en C, ja que us permet veure quina cadena conté més caràcters. Això és molt útil per ordenar les dades. La comparació de cadenes requereix una funció especial; no utilitzeu! = o ==.
Passos
Pas 1. Hi ha dues funcions que permeten comparar cadenes en C
Ambdues funcions s’inclouen a la biblioteca.
- strcmp (): aquesta funció compara dues cadenes i retorna la diferència comparativa en el nombre de caràcters.
- strncmp (): és el mateix que strcmp (), tret que compara els primers n caràcters. Es considera més segur ja que ajuda a evitar el desbordament de bloquejos.
Pas 2. Inicieu el programa amb les biblioteques necessàries
Voleu tant les biblioteques com les biblioteques, juntament amb qualsevol altra que pugueu necessitar per al vostre programa específic.
#include #include
Pas 3. Inicieu un
int funció.
Aquesta és la forma més senzilla d'aprendre aquesta funció, ja que retornarà un enter que compara la longitud de les dues cadenes.
#include #include int main () {}
Pas 4. Definiu les dues cadenes que voleu comparar
Per a aquest exemple, compararem dues cadenes de caràcters predefinides. També voldreu definir el valor de retorn com a enter.
#include #include int main () {char * str1 = "apple"; char * str2 = "taronja"; int ret; }
Pas 5. Afegiu la funció de comparació
Ara que teniu definides les vostres dues cadenes, podeu afegir la funció de comparació. Utilitzarem strncmp (), de manera que hem d’assegurar-nos que el nombre de caràcters a mesurar s’estableixi a la funció.
#include #include int main () {char * str1 = "apple"; char * str2 = "taronja"; int ret; ret = strncmp (str1, str2, 6); / * Això compararà les dues cadenes de fins a 6 caràcters * /}
Pas 6. Utilitzeu un
Si una altra cosa declaració per realitzar la comparació.
Ara que teniu la funció al seu lloc, podeu utilitzar una sentència If … Else per mostrar quina cadena és més llarga. strncmp () retornarà 0 si les cadenes tenen la mateixa longitud, un nombre positiu si str1 és més gran i un nombre negatiu si str2 és més gran.
#include #include int main () {char * str1 = "apple"; char * str2 = "taronja"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 és més llarg"); } else if (ret <0) {printf ("str2 és més llarg"); } else {printf ("Les dues cadenes són iguals"); } retorn (0); }