strxfrm函数
概要:
#include <string.h> size_t strxfrm(char * restrict s1, const char * restrict s2, size_t n);
描述:
该函数根据当前语言环境的LC_COLLATE类别转换参数s2指向的字符串,然后将转换结果存入参数s1指向的数组。
使用strcmp函数比较两个转换后的字符串,将返回一个大于、等于或者小于0的值,该值与使用strcoll函数比较相同源字符串的结果相同。最多n个字符(包括终止空字符)存入参数s1指向的数组。如果参数n的值为0,参数s1可以是空指针。如果复制发生在重叠对象之间,函数行为是未定义的。
存储s2指向字符串转换结果的数组所需大小可使用以下表达式计算:
1 + strxfrm(NULL, s2, 0)
参数:
char * restrict s1
指向目标数组的指针,结果字符串将存入该数组。
const char * restrict s2
指向源字符串的指针。
size_t n
最多可以存入参数s1指向数组的字符数。
返回值:
函数返回转换后字符串的长度,但不包括终止空字符。如果返回值大于等于参数n,参数s1指向数组的内容是不确定的。
范例:
|
|
输出:
Before transformation:
strcmp: string is greater than String.
strcoll: string is less than String.
After transformation:
strcmp: string is less than String.
相关内容:
memcmp | 比较内存区域字符序列的函数。 |
strcmp | 比较字符串的函数。 |
strcoll | 比较字符串的函数。 |
strncmp | 比较字符串前n个字符的函数。 |