user-0 提问: strxfrm中的x什么意思？

回复:
user: user-1
content: 楼主不觉得 t和x形似吗？

user: user-2
content: 引用 2 楼 u014463229 的回复:上面这位大哥说了这么多，还是没回答我的问题啊 我个人觉得，你可以理解为转换和未知长度两个意思的结合。 一般转换用2，或者to，长度用n。 这里是两种意思都有，用x.

user: user-1
content: transform简写为xfrm

user: user-0
content: 上面这位大哥说了这么多，还是没回答我的问题啊

user: user-1
content: strxfrm, wcsxfrm Transform a string based on locale-specific information.  size_t strxfrm( char *strDest, const char *strSource, size_t count );  size_t wcsxfrm( wchar_t *strDest, const wchar_t *strSource, size_t count );  Routine Required Header Compatibility  strxfrm <string.h> ANSI, Win 95, Win NT  wcsxfrm <string.h> or <wchar.h> ANSI, Win 95, Win NT    For additional compatibility information, see Compatibility in the Introduction.  Libraries  LIBC.LIB Single thread static library, retail version  LIBCMT.LIB Multithread static library, retail version  MSVCRT.LIB Import library for MSVCRT.DLL, retail version    Return Value  Each of these functions returns the length of the transformed string, not counting the terminating null character. If the return value is greater than or equal to count, the content of strDest is unpredictable. On an error, each of the functions sets errno and returns (size_t) – 1.  Parameters  strDest  Destination string  strSource  Source string  count  Maximum number of characters to place in strDest  Remarks  The strxfrm function transforms the string pointed to by strSource into a new collated form that is stored in strDest. No more than count characters, including the null character, are transformed and placed into the resulting string. The transformation is made using the current locale’s LC_COLLATE category setting. For more information on LC_COLLATE, see setlocale.  After the transformation, a call to strcmp with the two transformed strings yields results identical to those of a call to strcoll applied to the original two strings. As with strcoll and stricoll, strxfrm automatically handles multibyte-character strings as appropriate.  wcsxfrm is a wide-character version of strxfrm; the string arguments of wcsxfrm are wide-character pointers. For wcsxfrm, after the string transformation, a call to wcscmp with the two transformed strings yields results identical to those of a call to wcscoll applied to the original two strings. wcsxfrm and strxfrm behave identically otherwise.  Generic-Text Routine Mappings  TCHAR.H Routine  _UNICODE & _MBCS Not Defined _MBCS Defined _UNICODE Defined  _tcsxfrm strxfrm strxfrm wcsxfrm    In the “C” locale, the order of the characters in the character set (ASCII character set) is the same as the lexicographic order of the characters. However, in other locales, the order of characters in the character set may differ from the lexicographic character order. For example, in certain European locales, the character 'a' (value 0x61) precedes the character 'ä' (value 0xE4) in the character set, but the character 'ä' precedes the character 'a' lexicographically.  In locales for which the character set and the lexicographic character order differ, use strxfrm on the original strings and then strcmp on the resulting strings to produce a lexicographic string comparison according to the current locale’s LC_COLLATE category setting. Thus, to compare two strings lexicographically in the above locale, use strxfrm on the original strings, then strcmp on the resulting strings. Alternatively, you can use strcoll rather than strcmp on the original strings.  The value of the following expression is the size of the array needed to hold the strxfrm transformation of the source string:  1 + strxfrm( NULL, string, 0 )  In the “C” locale only, strxfrm is equivalent to the following:  strncpy( _string1, _string2, _count ); return( strlen( _string1 ) );  Data Conversion Routines, Locale Routines, String Manipulation |  strcoll Functions  See Also   localeconv, setlocale, strcmp, strncmp