C++ 中的wcsxfrm() 函數將給定的空終止寬字符串轉換為實現定義的形式。
wcsxfrm() 函數轉換寬字符串,以便使用 wcscmp() 函數比較兩個轉換後的寬字符串產生與在當前 C 語言環境中使用 wcscoll() 函數比較原始寬字符串相同的結果。
例如,x 和 y 是兩個寬字符串。 a 和 b 是兩個寬字符串,分別使用 wcsxfrm 函數對 x 和 y 進行變換。
然後,
wcscmp(a,b) = wcscoll(x,y)
它在<cwchar> 頭文件中定義。
wcsxfrm()原型
size_t wcsxfrm( wchar_t* dest, const wchar_t* src, size_t count );
wcsxfrm() 函數將 src
指向的寬字符串的第一個 count
寬字符轉換為實現定義的形式,並將結果存儲在 dest
指向的內存位置。
在以下情況下,此函數的行為未定義:
- dest 的大小小於所需的大小。
- dest 和 src 重疊。
參數:
dest
:指向存儲轉換後的寬字符串的數組的指針。src
:指向要轉換的空終止寬字符串的指針。count
:要轉換的最大寬字符數。
返回:
wcsxfrm() 函數返回轉換的寬字符數,不包括終止的空寬字符 L'\0'。
示例:wcsxfrm() 函數如何工作?
#include <cwchar>
#include <clocale>
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_COLLATE, "cs_CZ.UTF-8");
const wchar_t* s1 = L"\u0068\u0072\u006e\u0065\u0063";
const wchar_t* s2 = L"\u0063\u0068\u0072\u0074";
wchar_t t1[20], t2[20];
cout << "wcscoll returned " << wcscoll(s1,s2) << endl;
cout << "Before transformation, " << "wcscmp returned " << wcscmp(s1,s2) << endl;
wcsxfrm(t1,s1,10);
wcsxfrm(t2,s2,10);
cout << "After transformation, " << "wcscmp returned " << wcscmp(t1,t2) << endl;
return 0;
}
運行程序時,輸出將是:
wcscoll returned -1 Before transformation, wcscmp returned 1 After transformation, wcscmp returned -1
相關用法
- C++ wcstold()用法及代碼示例
- C++ wcsftime()用法及代碼示例
- C++ wcstod()用法及代碼示例
- C++ wcscspn()用法及代碼示例
- C++ wcsncmp()用法及代碼示例
- C++ wcstok()用法及代碼示例
- C++ wcsstr()用法及代碼示例
- C++ wcsrchr()用法及代碼示例
- C++ wcsncpy()用法及代碼示例
- C++ wcslen()用法及代碼示例
- C++ wcsspn()用法及代碼示例
- C++ wcschr()用法及代碼示例
- C++ wcstof()用法及代碼示例
- C++ wcstol()用法及代碼示例
- C++ wcspbrk()用法及代碼示例
- C++ wcscat()用法及代碼示例
- C++ wcscoll()用法及代碼示例
- C++ wcsncat()用法及代碼示例
- C++ wcscpy()用法及代碼示例
- C++ wcscmp()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ wcsxfrm()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。