Wku

Hur man kan jämföra två strängar i C-programmering

Den sträng som är mindre är lexikografiskt mindre (det börjar med bokstäver som finns innan de inledande bokstäverna i den andra strängen i en ordbok).

Steg

Hur man kan jämföra två strängar i C-programmering. Inkludera string biblioteket i ditt program.
Hur man kan jämföra två strängar i C-programmering. Inkludera string biblioteket i ditt program.
  1. 1
    Inkludera string biblioteket i ditt program. Detta bibliotek innehåller en hel del användbara funktioner som används när du arbetar med strängar, däribland en som jämför dem. Placera följande kod längst upp i programmet, med den andra ingår.
      

  2. 2
    Deklarera strängvariabler. De kommer att vara de strängar du ska jämföra. Observera att strängar i C deklareras som arrayer av tecken, inte som en särskild sträng typ.
      

  3. 3
    Bestäm hur många tecken du vill jämföra.
    • Ju mer du jämför, desto högre precision du kommer att uppnå (t.ex. om strängarna var "Hell" och "Hej" och man jämförde fyra tecken, förefaller de samma).
    • Om du jämför en massa tecken, kommer jämförelsen att bli långsammare.
    • Det finns inget behov av att göra detta antal är större än strängarnas längder (det finns inga tecken att jämföra efter deras slut).
  4. 4
    Skapa en variabel som innehåller antalet tecken att jämföra.
      

  5. 5
    Initiera strängarna. Du kan tilldela värdet manuellt, läsa den från ingången, läsa den från en fil...
  6. 6
    Jämför strängarna. Jämförelsen görs med hjälp av strncmp ()-funktionen, och det returnerade typen är ett heltal.
      

  7. 7
    Undersök resultatet. Om den är positiv, är den första strängen större. Om det är negativt, är den andra större. Om det är 0, är ​​de lika.
      

Provkod

Ett program som besvarar enkla frågor ("Vad är ditt namn?", "Hur mår du?", "Vad tycker du om Google?")

  # Include <stdio.h>  # Include <string.h>    int main ()  {  printf ("Hej Ställ mig en fråga \ n!");  while (1)  {  char str [100];  scanf ("% s", & str);  int res = strncmp (str, "Vad är ditt namn?", 100);  if (res == 0)  printf ("Jag är ett program, jag har inte ett namn \ n");  res = strncmp (str, "Hur mår du?", 100);  if (res == 0)  printf ("Fine \ n.");  res = strncmp (str, "Vad tycker du om Google?", 100);  if (res == 0)  printf ("Det är fantastiskt!");  }  } 

Tips

  • Den compareLimit parametern berättar strncmp det maximala antalet tecken att undersöka. Använda strncmp stället för den ursprungliga strcmp (liksom andra Strn * rutiner vs deras str * motsvarigheter) är ett av de många sätt som C-program kan göras mer stabil och säker.
  • Denna funktion kan användas i ett "om" uttalande.

Varningar

  • Kom ihåg att returvärdet är 0 om strängarna är desamma. Detta kan förvirra dig eftersom 0 är också värdet av FALSKT.