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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。