At sammenligne strenglængde er en almindelig funktion i C -programmering, da den giver dig mulighed for at se, hvilken streng der indeholder flere tegn. Dette er meget nyttigt til sortering af data. At sammenligne strenge kræver en særlig funktion; brug ikke! = eller ==.
Trin
Trin 1. Der er to funktioner, der giver dig mulighed for at sammenligne strenge i C
Begge disse funktioner er inkluderet i biblioteket.
- strcmp () - Denne funktion sammenligner to strenge og returnerer den komparative forskel i antallet af tegn.
- strncmp () - Dette er det samme som strcmp (), bortset fra at det sammenligner de første n tegn. Det betragtes som mere sikkert, da det hjælper med at forhindre nedbrud fra overløb.
Trin 2. Start programmet med dine nødvendige biblioteker
Du vil have både bibliotekerne og bibliotekerne sammen med andre, du kan få brug for til dit specifikke program.
#include #include
Trin 3. Start en
int fungere.
Dette er den nemmeste måde at lære denne funktion på, da den returnerer et helt tal, der sammenligner længden af de to strenge.
#include #include int main () {}
Trin 4. Definer de to strenge, du vil sammenligne
I dette eksempel vil vi sammenligne to foruddefinerede char -strenge. Du vil også definere returværdien som et helt tal.
#include #include int main () {char *str1 = "æble"; char *str2 = "orange"; int ret; }
Trin 5. Tilføj sammenligningsfunktionen
Nu hvor du har defineret dine to strenge, kan du tilføje sammenligningsfunktionen. Vi kommer til at bruge strncmp (), så vi skal sikre, at antallet af tegn, der skal måles, er indstillet i funktionen.
#include #include int main () {char *str1 = "æble"; char *str2 = "orange"; int ret; ret = strncmp (str1, str2, 6); / *Dette vil sammenligne de to strenge på op til 6 tegn */}
Trin 6. Brug en
Hvis ellers erklæring for at udføre sammenligningen.
Nu hvor du har funktionen på plads, kan du bruge en If … Else -sætning til at vise, hvilken streng der er længere. strncmp () returnerer 0, hvis strengene har samme længde, et positivt tal, hvis str1 er større og et negativt tal, hvis str2 er større.
#include #include int main () {char *str1 = "æble"; char *str2 = "orange"; int ret; ret = strncmp (str1, str2, 6); hvis (ret> 0) {printf ("str1 er længere"); } ellers hvis (ret <0) {printf ("str2 er længere"); } else {printf ("De to strenge er ens"); } retur (0); }