Den streng, der er mindre er leksikografiske mindre (det starter med bogstaver, der er før begyndelsesbogstaverne fra den anden snor i en ordbog).
Steps
- 1Medtag strengen biblioteket i dit program. Dette bibliotek indeholder en masse nyttige funktioner, der bruges, når du arbejder med strygere, herunder en, der sammenligner dem. Placer følgende kode i toppen af programmet, med det andet omfatter.
- 2Erklær strengen variable. De vil være de strenge, du vil sammenligne. Bemærk at strenge i C angives som arrays af tegn, ikke som en speciel snor type.
- 3Beslut, hvor mange tegn, du ønsker at sammenligne.
- Jo mere du sammenligner, jo højere præcision du vil opnå (For eksempel, hvis strengene var "Hell" og "Hello" og du sammenlignet fire tegn, ville de synes det samme).
- Hvis du sammenligner en masse tegn, skal sammenligningen være langsommere.
- Der er ingen grund til at gøre dette tal større end strengene 'længder (der er ingen tegn til sammenligningen efter deres ende).
- 4Opret en variabel, der indeholder antallet af tegn til at sammenligne.
- 5Initialiser strengene. Du kan tildele værdien manuelt, læse den fra indgangen, læse den fra en fil...
- 6Sammenligne strengene. Sammenligningen sker ved hjælp af strncmp () funktion, og den returnerede type er et heltal.
- 7Undersøg resultatet. Hvis den er positiv, den første streng er større. Hvis den er negativ, den anden er større. Hvis det er 0, er de ens.
Sample code
Et program, der besvarer enkle spørgsmål ("Hvad er dit navn?", "How are you?", "Hvad synes du om Google?")
# Include <stdio.h> # Include <string.h> int main () { printf ("Hello Spørg mig et spørgsmål \ n!"); while (1) { char str [100]; scanf ("% s", & str); int res = strncmp (str, "Hvad er dit navn?", 100); if (res == 0) printf ("Jeg er et program, jeg ikke har et navn \ n"); res = strncmp (str, "Hvor er du?", 100); if (res == 0) printf ("Fint \ n".) res = strncmp (str, "Hvad synes du om Google?", 100); if (res == 0) printf ("Det er fantastisk!"); } }
Tips
- Den compareLimit parameter fortæller strncmp det maksimale antal tegn til at undersøge. Brug strncmp stedet for den oprindelige strcmp (samt de andre Strn * rutiner vs deres str * modparter) er en af de mange måder, C-programmer kan gøres mere stabil og sikker.
- Denne funktion kan bruges i et "hvis" erklæring.
Advarsler
- Husk, at den returnerede værdi er 0, hvis strengene er de samme. Dette kan forvirre dig, fordi 0 er også værdien af FALSK.