Funkcja wmemcmp () w C ++ porównuje określoną liczbę szerokich znaków dwóch szerokich ciągów.
Funkcja wmemcmp () jest zdefiniowana w pliku nagłówkowym.
Prototyp wmemcmp ()
int wmemcmp (const wchar_t * lhs, const wchar_t * rhs, size_t count);
Funkcja wmemcmp () przyjmuje trzy argumenty: lhs, rhs i count. Ta funkcja porównuje leksykograficznie pierwszy licznik szerokich znaków z lewej i prawej strony.
wmemcmp () Parametry
- lhs and rhs: Wskaźnik do szerokiej tablicy znaków do porównania.
- count: maksymalna liczba szerokich znaków do porównania.
wmemcmp () Wartość zwracana
Funkcja wmemcmp () zwraca:
- wartość dodatnia, jeśli pierwszy różniący się szeroki znak w lhs jest większy niż odpowiadający mu bajt w prawostronnych.
- wartość ujemna, jeśli pierwszy różniący się szeroki znak w lhs jest mniejszy niż odpowiadający mu bajt w prawostronnych.
- 0, jeśli pierwsza liczba szerokich znaków z lewej i prawej strony jest równa
Przykład: Jak działa funkcja wmemcmp ()?
#include #include #include using namespace std; void compare(wchar_t *lhs, wchar_t *rhs, int count) ( int result = wmemcmp(lhs, rhs, count); if(result> 0) wcout << rhs << L" precedes " << lhs << endl; else if (result < 0) wcout << lhs << L" precedes " << rhs << endl; else wcout << L"First " << count << L" characters of " << lhs << L" and " << rhs << L" are same" << endl; ) int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t lhs() = L"u0386u03a6u03aau03acu03c8u03c9u03ee"; wchar_t rhs() = L"u0386u03a6u03aau03acu03c0u03c7u03fb"; compare(lhs, rhs, 4); compare(lhs, rhs, 7); return 0; )
Po uruchomieniu programu wynik będzie następujący:
Pierwsze 4 znaki ΆΦΪάψωϮ i ΆΦΪάπχϻ są takie same ΆΦΪάπχϻ poprzedza ΆΦΪάψωϮ