strncmp, _mbsncmp, wcsncmp

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu string.h - Index


Header-Datei

string.h, mbstring.h

Kategorie

Routinen für Speicher- und String-Bearbeitung, Inline-Routinen

Prototyp

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

int wcsncmp(const wchar_t *s1, const wchar_t *s2, size_t maxlen);

int _mbsncmp(const unsigned char *s1, const unsigned char *s2, size_t maxlen);

#define _mbccmp(__s1, __s2) _mbsncmp((__s1),(__s2),1)

Beschreibung

Vergleicht einen Teil eines String mit einem Teil eines anderen.

strncmp vergleicht auf gleiche, Vorzeichen nicht berücksichtigende Weise wie strcmp, jedoch nicht mehr als maxlen Zeichen. Der Vergleich beginnt mit dem ersten Zeichen eines jeden Strings und wird mit den folgenden Zeichen fortgesetzt, bis sich die jeweiligen Zeichen unterscheiden oder maxlen Zeichen verglichen wurden.

Rückgabewert

  • strncmp gibt einen auf dem Ergebnis des Vergleichs von s1 (oder eines Teils davon) mit s2 (oder eines Teils davon) basierenden Integerwert zurück:
  • < 0, wenn s1 kleiner s2 ist
  • == 0, wenn s1 gleich s2 ist
  • > 0, wenn s1 größer s2 ist

Beispiel



 #include <string.h>
 #include <stdio.h>
 int main(void)
 {
    char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";
    int ptr;
    ptr = strncmp(buf2,buf1,3);
    if (ptr < 0)
       printf("buffer 2 is greater than buffer 1\n");
    else
       printf("buffer 2 is less than buffer 1\n");
    ptr = strncmp(buf2,buf3,3);
    if (ptr < 0)
       printf("buffer 2 is greater than buffer 3\n");
    else
       printf("buffer 2 is less than buffer 3\n");
    return(0);
 }



Portabilität



POSIX Win32 ANSI C ANSI C++

strncmp

+

+

+

+

_mbsncmp

+

_mbccmp

+

wcsncmp

+

+

+