Het vergelijken van de stringlengte is een veelgebruikte functie in C-programmering, omdat u hiermee kunt zien welke string meer tekens bevat. Dit is erg handig voor het sorteren van gegevens. Strings vergelijken vereist een speciale functie; gebruik niet != of ==.
Stappen
Stap 1. Er zijn twee functies waarmee u strings in C kunt vergelijken
Beide functies zijn opgenomen in de bibliotheek.
- strcmp() - Deze functie vergelijkt twee tekenreeksen en retourneert het vergelijkende verschil in het aantal tekens.
- strncmp() - Dit is hetzelfde als strcmp(), behalve dat het de eerste n tekens vergelijkt. Het wordt als veiliger beschouwd omdat het helpt voorkomen dat crashes overlopen.
Stap 2. Start het programma met uw benodigde bibliotheken
U wilt zowel de bibliotheken als, samen met alle andere die u nodig heeft voor uw specifieke programma.
#include #include
Stap 3. Start een
int functie.
Dit is de gemakkelijkste manier om deze functie te leren, omdat het een geheel getal retourneert dat de lengte van de twee strings vergelijkt.
#include #include int main () { }
Stap 4. Definieer de twee strings die u wilt vergelijken
Voor dit voorbeeld zullen we twee vooraf gedefinieerde tekenreeksen vergelijken. U wilt de geretourneerde waarde ook als een geheel getal definiëren.
#include #include int main () { char *str1 = "appel"; char *str2 = "oranje"; int ret; }
Stap 5. Voeg de vergelijkingsfunctie toe
Nu je je twee strings hebt gedefinieerd, kun je de vergelijkingsfunctie toevoegen. We gaan strncmp() gebruiken, dus we moeten ervoor zorgen dat het aantal te meten tekens in de functie is ingesteld.
#include #include int main () { char *str1 = "appel"; char *str2 = "oranje"; int ret; ret = strncmp(str1, str2, 6); /*Dit vergelijkt de twee strings van maximaal 6 tekens lang */ }
Stap 6. Gebruik een
Als…Anders verklaring om de vergelijking uit te voeren.
Nu u de functie hebt geïnstalleerd, kunt u een If…Else-instructie gebruiken om aan te geven welke string langer is. strncmp() retourneert 0 als de strings dezelfde lengte hebben, een positief getal als str1 groter is en een negatief getal als str2 groter is.
#include #include int main () { char *str1 = "appel"; char *str2 = "oranje"; int ret; ret = strncmp(str1, str2, 6); if(ret > 0) { printf("str1 is langer"); } else if(ret < 0) { printf("str2 is langer"); } else { printf("De twee strings zijn gelijk"); } terugkeer (0); }