Hur man jämför två strängar i programmeringsspråket C

Författare: William Ramirez
Skapelsedatum: 18 September 2021
Uppdatera Datum: 1 Juli 2024
Anonim
Hur man jämför två strängar i programmeringsspråket C - Samhälle
Hur man jämför två strängar i programmeringsspråket C - Samhälle

Innehåll

Det är ganska vanligt i C -kod att jämföra stränglängder för att ta reda på vilken sträng som innehåller fler tecken. Detta är användbart för att sortera data. En särskild funktion behövs för att jämföra strängar - använd inte != eller ==.

Steg

  1. 1 C -programmeringsspråket innehåller två funktioner som du kan använda för att jämföra stränglängder. Båda dessa funktioner ingår i biblioteket string.h>.
    • strcmp () - denna funktion jämför två strängar och returnerar skillnaden i antalet tecken.
    • strncmp () - denna funktion är densamma som strcmp () förutom den första n tecken. Det anses vara säkrare eftersom det undviker överflödesfel.
  2. 2 Starta programmet med de bibliotek som krävs. Du behöver bibliotek stdio.h> och string.h>liksom alla andra bibliotek som krävs för ditt specifika program.

    #include stdio.h> #include string.h>

  3. 3 Ange funktion int. Det returnerar ett heltal som ett resultat av att jämföra längden på två strängar.

    #include stdio.h> #include string.h> int main () {}

  4. 4 Identifiera de två strängarna du vill jämföra. I vårt exempel, låt oss jämföra två strängar av typ röding... Definiera också returvärdet som ett heltal.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "orange"; int ret; }

  5. 5 Ange en jämförelsesfunktion. I vårt exempel kommer vi att använda funktionen strncmp ()... I den måste du ange antalet uppmätta tecken.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "orange"; int ret; ret = strncmp (str1, str2, 8); / * Jämför två strängar upp till åtta tecken långa * *}

  6. 6 Ange ett villkorligt uttalande Om... Annars. Det behövs för att visa vilken rad som är längre. Fungera strncmp () kommer att returnera numret 0om strängarnas längder är desamma, ett positivt tal om str1 är längre och ett negativt tal om str2 är längre.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "orange"; int ret; ret = strncmp (str1, str2, 8); om (ret> 0) {printf ("str1 är längre"); } annat om (ret 0) {printf ("str2 är längre"); } else {printf ("Linjelängderna är lika"); } retur (0); }

Varningar

  • Kom ihåg att om längden på strängarna är lika kommer värdet 0 att returneras. Detta kan vara förvirrande eftersom 0 också är FALSKT.