strxfrm ()- 变换字符串
格式
#include <string.h>
size_t strxfrm(char *string1, const char *string2, size_t count);
语言级别
ANSI
线程安全
是
语言环境敏感
此函数的行为可能受当前语言环境的 LC_CTYPE 和 LC_COLLATE 类别影响。 有关更多信息,请参阅 了解 CCSID 和语言环境。
描述
strxfrm()
函数变换由 string2 指向的字符串,并将结果放入由 string1指向的字符串中。 变换由程序的当前语言环境确定。 转换后的字符串不一定可读,但可以与 strcmp()
或 strncmp()
函数配合使用。
返回值
strxfrm()
函数返回已转换字符串的长度,不包括结束空字符。 如果返回的值大于或等于 count,那么转换后的字符串的内容是不确定的。
如果 strxfrm()
不成功,那么将更改 errno。 errno 的值可以设置为 EINVAL ( string1 或 string2 自变量包含在当前语言环境中不可用的字符)。
示例
此示例提示用户输入字符串,然后使用
strxfrm()
变换字符串并返回其长度。#include <stdio.h>
#include <string.h>
int main(void)
{
char *string1, buffer[80];
int length;
printf("Type in a string of characters.\n ");
string1 = gets(buffer);
length = strxfrm(NULL, string1, 0);
printf("You would need a %d element array to hold the string\n",length);
printf("\n\n%s\n\n transformed according",string1);
printf(" to this program's locale. \n");
}