Namespaces
Variants

std:: wmemcmp

From cppreference.net
Definiert in Header <cwchar>
int wmemcmp ( const wchar_t * lhs, const wchar_t * rhs, std:: size_t count ) ;

Vergleicht die ersten count Breitzeichen der Breitzeichen-Arrays, auf die lhs und rhs zeigen. Der Vergleich erfolgt lexikografisch.

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

Wenn count null ist, führt die Funktion keine Aktion aus.

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 steht vor rhs in lexikografischer Reihenfolge.

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 lokalisierungssensitiv und schenkt den Werten der wchar_t Objekte, die sie untersucht, keine Beachtung: Nullzeichen sowie ungültige Breitzeichen werden ebenfalls verglichen.

Beispiel

#include <clocale>
#include <cwchar>
#include <iostream>
#include <locale>
#include <string>
void demo(const wchar_t* lhs, const wchar_t* rhs, std::size_t sz)
{
    std::wcout << std::wstring(lhs, sz);
    int rc = std::wmemcmp(lhs, rhs, sz);
    if (rc == 0)
        std::wcout << " compares equal to ";
    else if (rc < 0)
        std::wcout << " precedes ";
    else if (rc > 0)
        std::wcout << " follows ";
    std::wcout << std::wstring(rhs, sz) << " in lexicographical order\n";
}
int main()
{
    std::setlocale(LC_ALL, "en_US.utf8");
    std::wcout.imbue(std::locale("en_US.utf8"));
    wchar_t a1[] = {L'α',L'β',L'γ'};
    constexpr std::size_t sz = sizeof a1 / sizeof *a1;
    wchar_t a2[sz] = {L'α',L'β',L'δ'};
    demo(a1, a2, sz);
    demo(a2, a1, sz);
    demo(a1, a1, sz);
}

Mögliche Ausgabe:

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

Siehe auch

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