Namespaces
Variants

wmemcmp

From cppreference.net
< c ‎ | string ‎ | wide
Definiert im Header <wchar.h>
int wmemcmp ( const wchar_t * lhs, const wchar_t * rhs, size_t count ) ;
(seit C95)

Vergleicht die ersten count Breitzeichen der Breitzeichen-Arrays (oder kompatiblen Ganzzahltypen), auf die lhs und rhs zeigen. Der Vergleich erfolgt lexikographisch.

Das Vorzeichen des Ergebnisses ist das Vorzeichen der Differenz zwischen den Werten des ersten Paares von Breitzeichen, die sich in den verglichenen Arrays unterscheiden.

Wenn count null ist, tut die Funktion nichts.

Inhaltsverzeichnis

Parameter

lhs, rhs - Zeiger auf die zu vergleichenden Breitzeichen-Arrays
count - Anzahl der zu untersuchenden Breitzeichen

Rückgabewert

Negativer Wert, wenn der Wert des ersten abweichenden Breitzeichens in lhs kleiner ist als der Wert des entsprechenden Breitzeichens in rhs : lhs geht rhs in lexikografischer Reihenfolge voraus.

0 wenn alle count Breitzeichen von lhs und rhs gleich sind.

Positiver Wert, wenn der Wert des ersten abweichenden Breitzeichens in lhs größer ist als der Wert des entsprechenden Breitzeichens in rhs : rhs geht lhs in lexikografischer Reihenfolge voraus.

Hinweise

Diese Funktion ist nicht gebietsschemabezüglich und beachtet nicht die Werte der wchar_t Objekte, die sie untersucht: Nullzeichen sowie ungültige Breitzeichen werden ebenfalls verglichen.

Beispiel

#include <locale.h>
#include <stdio.h>
#include <wchar.h>
void demo(const wchar_t* lhs, const wchar_t* rhs, size_t sz)
{
    for (size_t n = 0; n < sz; ++n)
        putwchar(lhs[n]);
    int rc = wmemcmp(lhs, rhs, sz);
    if (rc == 0)
        wprintf(L" compares equal to ");
    else if(rc < 0)
        wprintf(L" precedes ");
    else if(rc > 0)
        wprintf(L" follows ");
    for (size_t n = 0; n < sz; ++n)
        putwchar(rhs[n]);
    wprintf(L" in lexicographical order\n");
}
int main(void)
{
    setlocale(LC_ALL, "en_US.utf8");
    wchar_t a1[] = {L'α',L'β',L'γ'};
    wchar_t a2[] = {L'α',L'β',L'δ'};
    size_t sz = sizeof a1 / sizeof *a1;
    demo(a1, a2, sz);
    demo(a2, a1, sz);
    demo(a1, a1, sz);
}

Ausgabe:

αβγ precedes αβδ in lexicographical order
αβδ follows αβγ in lexicographical order
αβγ compares equal to αβγ in lexicographical order

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.29.4.4.5 Die wmemcmp-Funktion (S.: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.29.4.4.5 Die wmemcmp-Funktion (S.: TBD)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.29.4.4.5 Die wmemcmp-Funktion (S: 435)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.24.4.4.5 Die wmemcmp-Funktion (S: 381)

Siehe auch

(C95)
vergleicht zwei Breitzeichenketten
(Funktion)
vergleicht zwei Puffer
(Funktion)
(C95)
vergleicht eine bestimmte Anzahl von Zeichen aus zwei Breitzeichenketten
(Funktion)
C++-Dokumentation für wmemcmp