C++ 中的strxfrm() 函数将给定的空终止字节字符串转换为实现定义的形式。
strxfrm() 函数转换字符串,以便使用 strcmp() 函数比较两个转换后的字符串产生与在当前 C 语言环境中使用 strcoll() 函数比较原始字符串相同的结果。
例如,x 和 y 是两个字符串。 a 和 b 是使用 strxfrm 函数分别转换 x 和 y 形成的两个字符串。然后调用 strcmp(a,b) 与调用 strcoll(x,y) 相同。
strxfrm()原型
size_t strxfrm(char* dest, const char* src, size_t count);
strxfrm() 函数将 src
指向的字符串的前 count
字符转换为实现定义的形式,并将结果存储在 dest
指向的内存位置。
在以下情况下,此函数的行为未定义:
dest
的大小小于所需大小。dest
和src
重叠。
它在<cstring> 头文件中定义。
参数:
dest
:指向存储转换字符串的数组的指针。src
:指向要转换的空终止字符串的指针。count
:要转换的最大字符数。
返回:
strxfrm() 函数返回转换的字符数,不包括终止空字符'\0'。
示例:strxfrm() 函数如何工作?
#include <iostream>
#include <cstring>
#include <clocale>
using namespace std;
int main()
{
setlocale(LC_COLLATE, "cs_CZ.UTF-8");
const char* s1 = "hrnec";
const char* s2 = "chrt";
char t1[20], t2[20];
cout << "strcoll returned " << strcoll(s1,s2) << endl;
cout << "Before transformation, " << "strcmp returned " << strcmp(s1,s2) << endl;
strxfrm(t1,s1,10);
strxfrm(t2,s2,10);
cout << "After transformation, " << "strcmp returned " << strcmp(t1,t2) << endl;
return 0;
}
运行程序时,输出将是:
strcoll returned -1 Before transformation, strcmp returned 1 After transformation, strcmp returned -1
相关用法
- C++ strxfrm()用法及代码示例
- C++ string::length()用法及代码示例
- C++ strchr()用法及代码示例
- C++ string::npos用法及代码示例
- C++ strncat()用法及代码示例
- C++ strcat()用法及代码示例
- C++ strstr()用法及代码示例
- C++ strcat() vs strncat()用法及代码示例
- C++ strtok()用法及代码示例
- C++ strtod()用法及代码示例
- C++ strtoimax()用法及代码示例
- C++ strcmp()用法及代码示例
- C++ strcspn()用法及代码示例
- C++ strpbrk()用法及代码示例
- C++ strspn()用法及代码示例
- C++ strncmp()用法及代码示例
- C++ strtoull()用法及代码示例
- C++ string at()用法及代码示例
- C++ strol()用法及代码示例
- C++ strtoll()用法及代码示例
注:本文由纯净天空筛选整理自 C++ strxfrm()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。