Å sammenligne strenglengde er en vanlig funksjon i C -programmering, ettersom den lar deg se hvilken streng som inneholder flere tegn. Dette er veldig nyttig for sortering av data. Å sammenligne strenger krever en spesiell funksjon; ikke bruk! = eller ==.
Trinn
Trinn 1. Det er to funksjoner som lar deg sammenligne strenger i C
Begge disse funksjonene er inkludert i biblioteket.
- strcmp () - Denne funksjonen sammenligner to strenger og returnerer den komparative forskjellen i antall tegn.
- strncmp () - Dette er det samme som strcmp (), bortsett fra at det sammenligner de første n -tegnene. Det regnes som mer sikkert, da det bidrar til å forhindre krasj fra overløp.
Trinn 2. Start programmet med de nødvendige bibliotekene
Du vil ha både og og biblioteker, sammen med alle andre du måtte trenge for ditt spesifikke program.
#include #include
Trinn 3. Start en
int funksjon.
Dette er den enkleste måten å lære denne funksjonen, da den vil returnere et heltall som sammenligner lengden på de to strengene.
#include #include int main () {}
Trinn 4. Definer de to strengene du vil sammenligne
For dette eksemplet vil vi sammenligne to forhåndsdefinerte char -strenger. Du vil også definere returverdien som et heltall.
#include #include int main () {char *str1 = "apple"; char *str2 = "oransje"; int ret; }
Trinn 5. Legg til sammenligningsfunksjonen
Nå som du har definert de to strengene dine, kan du legge til sammenligningsfunksjonen. Vi skal bruke strncmp (), så vi må sørge for at antall tegn som skal måles er angitt i funksjonen.
#include #include int main () {char *str1 = "apple"; char *str2 = "oransje"; int ret; ret = strncmp (str1, str2, 6); / *Dette vil sammenligne de to strengene på opptil 6 tegn */}
Trinn 6. Bruk en
Hvis … Ellers uttalelse for å utføre sammenligningen.
Nå som du har funksjonen på plass, kan du bruke en If … Else -setning for å vise hvilken streng som er lengre. strncmp () returnerer 0 hvis strengene er like lange, et positivt tall hvis str1 er større og et negativt tall hvis str2 er større.
#include #include int main () {char *str1 = "apple"; char *str2 = "oransje"; int ret; ret = strncmp (str1, str2, 6); hvis (ret> 0) {printf ("str1 er lengre"); } annet hvis (ret <0) {printf ("str2 er lengre"); } else {printf ("De to strengene er like"); } retur (0); }