La función wcscoll() en C++ compara dos strings terminadas en cero. La comparación se basa en la configuración regional actual definida por la categoría LC_COLLATE .
Esta función comienza comparando el primer carácter de cada string. Se consideran iguales hasta que los caracteres difieren o hasta que se alcanza un carácter ancho nulo que indica el final de una string.
Sintaxis:
int wcscoll( const wchar_t* wcs1, const wchar_t* wcs2 )
Parámetros: La función acepta dos parámetros obligatorios que se describen a continuación:
- wcs1: es un puntero a las strings anchas terminadas en nulo para comparar.
- wcs2: es un puntero a las strings anchas terminadas en nulo para comparar.
Valor de retorno: la función devuelve tres valores como se muestra a continuación:
- 0, si los valores indican que ambas strings son iguales.
- Valor positivo, si el primer carácter que es diferente en wcs1 es mayor que el carácter correspondiente en wcs2.
- Valor negativo, si el primer carácter que es diferente en wcs1 es menor que el carácter correspondiente en wcs2.
Los siguientes programas ilustran la función anterior:
Programa 1:
// C++ program to illustrate // wcsoll() function #include <bits/stdc++.h> using namespace std; // function to compare two strings void comparetwo(const wchar_t* wcs1, const wchar_t* wcs2) { // pointer wcs1 points string // pointer wcs2 points string_ if (wcscoll(wcs1, wcs2) < 0) wcout << wcs1 << L" precedes " << wcs2 << '\n'; else if (wcscoll(wcs1, wcs2) > 0) wcout << wcs2 << L" precedes " << wcs1 << '\n'; else wcout << wcs2 << L" equals " << wcs1 << '\n'; } int main() { // initializing two strings wchar_t string[] = L"article"; wchar_t string_[] = L"everyone"; // setting american locale setlocale(LC_ALL, "en_US.utf8"); wcout << L"In American : "; // compare two strings with wcs1 and wcs2 comparetwo(string, string_); // setting swedish locale setlocale(LC_ALL, "sv_SE.utf8"); wcout << L"In Swedish : "; comparetwo(string, string_); return 0; }
In American : article precedes everyone In Swedish : article precedes everyone
Programa 2:
// C++ program to illustrate // wcsoll() function #include <bits/stdc++.h> using namespace std; // function to compare two strings void comparetwo(const wchar_t* wcs1, const wchar_t* wcs2) { // pointer wcs1 points string // pointer wcs2 points string_ if (wcscoll(wcs1, wcs2) < 0) wcout << wcs1 << L" precedes " << wcs2 << '\n'; else if (wcscoll(wcs1, wcs2) > 0) wcout << wcs2 << L" precedes " << wcs1 << '\n'; else wcout << wcs2 << L" equals " << wcs1 << '\n'; } int main() { // initializing two strings wchar_t string[] = L"geekforgeeks"; wchar_t string_[] = L"gfg"; // setting Czech locale setlocale(LC_COLLATE, "cs_CZ.utf8"); wcout << L"In Czech : "; // compare two strings with wcs1 and wcs2 comparetwo(string, string_); // setting american locale setlocale(LC_COLLATE, "en_US.utf8"); wcout << "In the American locale: "; comparetwo(string, string_); return 0; }
In Czech : geekforgeeks precedes gfg In the American locale: geekforgeeks precedes gfg
Publicación traducida automáticamente
Artículo escrito por AmanSrivastava1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA