Wkuno

Hvordan sammenligne to strenger i C-programmering

Strengen som er mindre er leksikografisk mindre (det begynner med bokstaver som er før de første bokstavene i den andre strengen i en ordbok).

Trinn

Hvordan sammenligne to strenger i C-programmering. Inkluder strengen bibliotek i programmet.
Hvordan sammenligne to strenger i C-programmering. Inkluder strengen bibliotek i programmet.
  1. 1
    Inkluder strengen bibliotek i programmet. Dette biblioteket inneholder en rekke nyttige funksjoner som brukes når du arbeider med strenger, inkludert en som sammenligner dem. Plasser den følgende kode på toppen av programmet, med den andre omfatter.
      

  2. 2
    Erklære strengvariabler. De vil være strengene du vil sammenligne. Legg merke til at strenger i C er deklarert som matriser av tegn, ikke som en spesiell streng type.
      

  3. 3
    Bestemme hvor mange tegn du ønsker å sammenligne.
    • Jo mer du sammenligne, jo høyere presisjon du vil oppnå (for eksempel hvis strengene var "helvete" og "Hello" og du sammenlignet fire tegn, vil de vises den samme).
    • Hvis du sammenligner en rekke tegn, vil sammenligningen være tregere.
    • Det er ikke nødvendig å gjøre dette tall større enn strengene 'lengder (det er ingen tegn til å sammenligne etter sin ende).
  4. 4
    Lag en variabel som inneholder antall tegn å sammenligne.
      

  5. 5
    Initialisere strengene. Du kan tilordne verdien manuelt, lese den fra input, lese den fra en fil...
  6. 6
    Sammenligne strengene. Sammenligningen er gjort ved hjelp av strncmp ()-funksjonen, og den returnerte typen er et heltall.
      

  7. 7
    Undersøke resultatet. Hvis den er positiv, er den første strengen større. Hvis den er negativ, er den andre større. Hvis den er 0, er de like.
      

Eksempelkode

Et program som besvarer enkle spørsmål ("Hva er navnet ditt?", "Hvor er du?", "Hva synes du om Google?")

  # Include <stdio.h>  # Include <string.h>    int main ()  {  printf ("Hello Spør meg et spørsmål \ n!");  mens (1)  {  røye str [100];  scanf ("% s", og str);  int res = strncmp (str, "Hva er ditt navn?", 100);  if (res == 0)  printf ("Jeg er et program, jeg har ikke et navn \ n");  res = strncmp (str, "Hvor er du?", 100);  if (res == 0)  printf ("Fin \ n.");  res = strncmp (str, "Hva synes du om Google?", 100);  if (res == 0)  printf ("Det er flott!");  }  } 

Tips

  • Den compareLimit parameteren forteller strncmp det maksimale antallet tegn for å undersøke. Ved hjelp strncmp stedet for den opprinnelige strcmp (samt andre Strn * rutiner vs deres str * kolleger) er en av de mange måter som C-programmer kan gjøres mer stabil og sikker.
  • Denne funksjonen kan brukes i en "hvis" statement.

Advarsler

  • Husk at avkastningen verdien er 0 hvis strengene er de samme. Dette kan forvirre deg fordi 0 er også verdien av FALSE.