NAME
wcsxfrm, wcsxfrm_l
— transform a wide string under
locale
LIBRARY
library “libc”
SYNOPSIS
#include
<wchar.h>
size_t
wcsxfrm(wchar_t
* restrict dst, const
wchar_t * restrict src,
size_t n);
size_t
wcsxfrm_l(wchar_t
* restrict dst, const
wchar_t * restrict src,
size_t n,
locale_t locale);
DESCRIPTION
Thewcsxfrm()
function transforms a null-terminated wide character string pointed to by
src according to the current locale collation order then
copies the transformed string into dst. No more than
n wide characters are copied into
dst, including the terminating null character added. If
n is set to 0 (it helps to determine an actual size
needed for transformation), dst is permitted to be a
NULL pointer.
Comparing two strings using
wcscmp()
after wcsxfrm() is equivalent to comparing two
original strings with
wcscoll().
The
wcsxfrm_l()
function is identical to wcsxfrm() but takes an
explicit locale argument, whereas
wcsxfrm() uses the current global or per-thread
locale.
RETURN VALUES
Upon successful completion, wcsxfrm() and
wcsxfrm_l() return the length of the transformed
string not including the terminating null character. If this value is
n or more, the contents of dst
are indeterminate.
SEE ALSO
STANDARDS
The wcsxfrm() function conforms to
ISO/IEC 9899:1999 (“ISO C99”).
The wcsxfrm_l() function conforms to
IEEE Std 1003.1-2008 (“POSIX.1”).
BUGS
The current implementation of wcsxfrm()
and wcsxfrm_l() only works in single-byte
LC_CTYPE locales, and falls back to using
wcsncpy() in locales with extended character
sets.
Comparing two strings using
wcscmp() after wcsxfrm() is
not always equivalent
to comparison with wcscoll();
wcsxfrm() only stores information about primary
collation weights into dst, whereas
wcscoll() compares characters using both primary and
secondary weights.