función wcscoll() en C++

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:

  1. wcs1: es un puntero a las strings anchas terminadas en nulo para comparar.
  2. 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:

  1. 0, si los valores indican que ambas strings son iguales.
  2. Valor positivo, si el primer carácter que es diferente en wcs1 es mayor que el carácter correspondiente en wcs2.
  3. 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;
}
Producción:

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;
}
Producción:

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *