Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

strncmp - Vergleich von zwei Zeichenketten

&pagelevel(4)&pagelevel

Definition

#include <string.h>

int strncmp(const char *s1, const char *s2, size_t n);

strncmp vergleicht die Zeichenketten s1 und s2 bis zur maximalen Länge n lexikalisch, z.B liefert

strncmp("Sie","Siemens",3)

das Ergebnis 0 (gleich), weil die beiden Argumente in den ersten drei Zeichen übereinstimmen.

Returnwert

< 0

s1 ist in den ersten n Zeichen lexikalisch kleiner als s2

 

= 0

s1 und s2 sind in den ersten n Zeichen lexikalisch gleich groß

 

> 0

s1 ist in den ersten n Zeichen lexikalisch größer als s2

Hinweis

Als Argumente werden Zeichenketten erwartet, die mit dem Nullbyte (\0) abgeschlossen sind.

Beispiel

In folgendem Rate-Programm wird strncmp dazu benutzt, die lexikalische Ordnung zweier Zeichenketten zu bestimmen.

#include <stdio.h>
#include <string.h>
int main(void)
{
    int i, n, result;
    char s[BUFSIZ], w[BUFSIZ];
    printf("Bitte geben Sie das zu ratende Wort ein:\n");
    scanf("%s", w);
    n = strlen(w);
    printf("\nDas eingegebene Wort hat %d Buchstaben.\n", n);
    i = 0;
    do
    {
       i++;
       printf("Ihr Versuch: \n");
       scanf("%s", s);
       if (strlen(s) > n)
       {
          printf("Ihre Eingabe ist zu lang!\n");
          continue;
       }
       result = strncmp(s, w, n);         /* result wird das Ergebnis
                                             von strncmp zugewiesen */
       if (result > 0)
           printf("%s ist lexikalisch groesser.\n", s);
       else
       {
         if (result < 0)
             printf("%s ist lexikalisch kleiner.\n", s);
       }
    }
    while (result != 0);
    printf("Richtig! Das Wort hiess : %s\n", w);
    printf("Sie haben %d Versuche gebraucht.\n", i);
    return 0;
}

Siehe auch

strcmp