PDF download Pdf downloaden PDF download 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 == .

  1. 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.
  2. 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> 
      
    
  3. 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 
     () 
     { 
     } 
    
  4. In dit voorbeeld vergelijken we twee gegeven char tekenreeksen. Je moet ook de return-waarde bepalen als integer. [1]
     #include 
     <stdio.h> 
      
     #include 
     <string.h> 
      
     int 
     main 
     () 
     { 
     char 
     * 
     str1 
     = 
     "appel" 
     ; 
     char 
     * 
     str2 
     = 
     "sinaasappel" 
     ; 
     int 
     ret 
     ; 
     } 
    
  5. 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 */ 
     } 
    
  6. 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.

Was dit artikel nuttig?

Advertentie