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
- 1Inkludera 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.
- 2Deklarera 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.
- 3Bestä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).
- 4Skapa en variabel som innehåller antalet tecken att jämföra.
- 5Initiera strängarna. Du kan tilldela värdet manuellt, läsa den från ingången, läsa den från en fil...
- 6Jämför strängarna. Jämförelsen görs med hjälp av strncmp ()-funktionen, och det returnerade typen är ett heltal.
- 7Undersö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.