Pdf downloaden
Pdf downloaden
Het vergelijken van de lengte van tekenreeksen is een veel gebruikte functie in de programmeertaal C, omdat je ermee na kunt gaan welke tekenreeks meer karakters bevat. Dit is bijzonder nuttig voor het sorteren van gegevens. Het vergelijken van tekenreeksen vereist een speciale functie; dus gebruik niet: != of == .
Stappen
-
Er zijn twee functies waarmee je tekenreeksen in C kunt vergelijken. Beide zijn opgenomen in de <string.h> -codebibliotheek.
- strcmp() – Deze functie vergelijkt twee tekenreeksen en geeft als resultaat het verschil in het aantal karakters.
- strncmp() – Dit geldt ook voor strcmp() , behalve dat deze de eerste n karakters vergelijkt. Deze wordt als veiliger beschouwd, omdat het helpt bij het voorkomen van crashes door een overflow.
-
Start het programma met de nodige bibliotheken. Je hebt zowel de bibliotheken <stdio.h> en <string.h> nodig, samen met andere bibliotheken die je wellicht nodig hebt voor je programma.
#include <stdio.h> #include <string.h>
-
Start een . int functie. Dit is de gemakkelijkste manier om deze functie te leren, omdat het een integer retourneert als vergelijking van de lengte van de twee tekenreeksen.
#include <stdio.h> #include <string.h> int main () { }
-
Bepaal welke twee tekenreeksen je wilt vergelijken. In dit voorbeeld vergelijken we twee gegeven char tekenreeksen. Je moet ook de return-waarde bepalen als integer. [1] X Bron
#include <stdio.h> #include <string.h> int main () { char * str1 = "appel" ; char * str2 = "sinaasappel" ; int ret ; }
-
Voeg de vergelijkingsfunctie toe. Nu je twee tekenreeksen hebt gedefinieerd, kun je de vergelijkingsfunctie toevoegen. We gaan strncmp() gebruiken, dus moeten we er zeker van zijn dat het aantal karakters om te meten is ingesteld binnen de functie.
#include <stdio.h> #include <string.h> int main () { char * str1 = "appel" ; char * str2 = "sinaasappel" ; int ret ; ret = strncmp ( str1 , str2 , 11 ); /*Hiermee vergelijk je de twee tekenreeksen tot een lengte van 11 karakters */ }
-
Gebruik . If...Else om de vergelijking uit te voeren. Nu we de functie hebben gemaakt, gebruik je If...Else om te bepalen welke tekenreeks langer is. strncmp() geeft 0 als resultaat, als de tekenreeksen dezelfde lengte hebben, een positief getal als str1 langer is en een negatief getal als str2 langer is.
#include <stdio.h> #include <string.h> int main () { char * str1 = "appel" ; char * str2 = "sinaasappel" ; int ret ; ret = strncmp ( str1 , str2 , 11 ); if ( ret > 0 ) { printf ( "str1 is langer" ); } else if ( ret < 0 ) { printf ( "str2 is langer" ); } else { printf ( "De twee tekenreeksen zijn gelijk " ); } return ( 0 ); }
Advertentie
Waarschuwingen
- Onthoud dat de return-waarde 0 is als de tekenreeksen gelijk zijn. Dit kan verwarrend zijn, omdat 0 ook de waarde is van FALSE.
Advertentie
Over dit artikel
Deze pagina is 1.695 keer bekeken.
Advertentie