当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ wcscoll()用法及代码示例


wcscoll()C++中的函数比较两个以null终止的字符串。比较基于LC_COLLATE类别定义的当前语言环境。
此函数开始比较每个字符串的第一个字符。直到字符不同或直到到达表示字符串结尾的零宽度字符为止,它们才被视为相等。

用法:

int wcscoll( const wchar_t* wcs1, const wchar_t* wcs2 )

参数:该函数接受两个强制性参数,如下所述:


  1. wcs1: 它是指向要比较的以null终止的宽字符串的指针。
  2. wcs2: 它是指向要比较的以null终止的宽字符串的指针。

返回值:该函数返回三个值,如下所示:

  1. 如果值指示两个字符串相等,则为0。
  2. 如果wcs1中第一个不同的字符大于wcs2中相应的字符,则为正值。
  3. 如果在wcs1中不同的第一个字符小于在wcs2中对应的字符,则为负值。

以下示例程序旨在说明上述函数:
示例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

示例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


相关用法


注:本文由纯净天空筛选整理自AmanSrivastava1大神的英文原创作品 wcscoll() function in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。