Sådan sammenlignes to strenge i programmeringssproget C

Forfatter: William Ramirez
Oprettelsesdato: 18 September 2021
Opdateringsdato: 1 Juli 2024
Anonim
Winson WCS1800 WCS2750 WCS1500 Hall Effect Current Sensor with Robojax Arduino Library
Video.: Winson WCS1800 WCS2750 WCS1500 Hall Effect Current Sensor with Robojax Arduino Library

Indhold

Det er ganske almindeligt i C -kode at sammenligne strenglængder for at finde ud af, hvilken streng der indeholder flere tegn. Dette er nyttigt til sortering af data. En særlig funktion er nødvendig for at sammenligne strenge - må ikke bruges != eller ==.

Trin

  1. 1 C -programmeringssproget indeholder to funktioner, som du kan bruge til at sammenligne strenglængder. Begge disse funktioner er inkluderet i biblioteket string.h>.
    • strcmp () - denne funktion sammenligner to strenge og returnerer forskellen i antallet af tegn.
    • strncmp () - denne funktion er den samme som strcmp () bortset fra at den første n tegn. Det betragtes som mere sikkert, fordi det undgår overløbsfejl.
  2. 2 Start programmet med de nødvendige biblioteker. Du skal bruge biblioteker stdio.h> og string.h>samt alle andre biblioteker, der kræves til dit specifikke program.

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

  3. 3 Indtast funktion int. Det returnerer et helt tal som et resultat af sammenligning af længden af ​​to strenge.

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

  4. 4 Identificer de to strenge, du vil sammenligne. Lad os i vores eksempel sammenligne to strenge af typen forkælelse... Definer også returværdien som et helt tal.

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

  5. 5 Indtast en sammenligningsfunktion. I vores eksempel vil vi bruge funktionen strncmp ()... I det skal du indstille antallet af målte tegn.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "orange"; int ret; ret = strncmp (str1, str2, 8); / * Sammenligner to strenge op til 8 tegn lange * /}

  6. 6 Indtast en betinget erklæring Hvis... Ellers. Det er nødvendigt for at vise, hvilken linje der er længere. Fungere strncmp () vil returnere nummeret 0hvis strengens længder er ens, et positivt tal, hvis str1 er længere, og et negativt tal, hvis str2 er længere.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "orange"; int ret; ret = strncmp (str1, str2, 8); hvis (ret> 0) {printf ("str1 er længere"); } ellers hvis (ret 0) {printf ("str2 er længere"); } else {printf ("Linjelængder er ens"); } retur (0); }

Advarsler

  • Husk, at hvis længderne på strengene er ens, returneres værdien 0. Dette kan være forvirrende, fordi 0 også er FALSKT.