Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::wcscoll(3)		      C++ Standard Libary	       std::wcscoll(3)

NAME
       std::wcscoll - std::wcscoll

Synopsis
	  Defined in header <cwchar>
	  int wcscoll( const wchar_t* lhs, const wchar_t* rhs );

	  Compares  two	 null-terminated  wide strings according to the	locale
       most recently
	  installed by std::setlocale, as defined by the LC_COLLATE category.

Parameters
	  lhs, rhs - pointers to the null-terminated wide strings to compare

Return value
	  Negative value if lhs	is less	than (precedes)	rhs.

	  0 if lhs is equal to rhs.

	  Positive value if lhs	is greater than	(follows) rhs.

Notes
	  Collation order is the dictionary order: the position	of the	letter
       in the national
	  alphabet  (its  equivalence class) has higher	priority than its case
       or variant.
	  Within an equivalence	class,	lowercase  characters  collate	before
       their uppercase
	  equivalents  and  locale-specific  order may apply to	the characters
       with diacritics.
	  In some locales, groups of characters	compare	 as  single  collation
       units. For
	  example,  "ch"  in  Czech follows "h"	and precedes "i", and "dzs" in
       Hungarian follows
	  "dz" and precedes "g".

Example
       // Run this code

	#include <iostream>
	#include <clocale>

	void try_compare(const wchar_t*	p1, const wchar_t* p2)
	{
	    if(std::wcscoll(p1,	p2) < 0)
		 std::wcout << p1 << " before "	<< p2 << '\n';
	    else
		 std::wcout << p2 << " before "	<< p1 << '\n';
	}

	int main()
	{
	    std::setlocale(LC_ALL, "en_US.utf8");
	    std::wcout << "In the American locale: ";
	    try_compare(L"hrnec", L"chrt");

	    std::setlocale(LC_COLLATE, "cs_CZ.utf8");
	    std::wcout << "In the Czech	locale:	";
	    try_compare(L"hrnec", L"chrt");

	    std::setlocale(LC_COLLATE, "en_US.utf8");
	    std::wcout << "In the American locale: ";
	    try_compare(L"r", L"ngel");

	    std::setlocale(LC_COLLATE, "sv_SE.utf8");
	    std::wcout << "In the Swedish locale: ";
	    try_compare(L"r", L"ngel");
	}

Output:
	In the American	locale:	chrt before hrnec
	In the Czech locale: hrnec before chrt
	In the American	locale:	ngel before r
	In the Swedish locale: r before	ngel

See also
	  strcoll    compares two strings in accordance	to the current locale
		     (function)
	  do_compare compares two strings using	this facet's collation rules
	  [virtual]   (virtual	protected   member   function	of   std::col-
       late<CharT>)
		     transform	a wide string so that wcscmp would produce the
       same result as
	  wcsxfrm    wcscoll
		     (function)

http://cppreference.com		  2022.07.31		       std::wcscoll(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::wcscoll&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help