std::wmemmove
定义于头文件 <cwchar>
|
||
wchar_t* wmemmove( wchar_t* dest, const wchar_t* src, std::size_t count ); |
||
准确地从 src
所指向的宽字符数组复制 count
个相继的宽字符到 dest
所指向的宽字符数组。
若 count
为零,则函数不做任何事。
数组可以重叠:如同复制宽字符到临时宽字符数组,再从临时数组到 dest
一般发生复制。
参数
dest | - | 指向复制目标宽字符数组的指针 |
src | - | 指向复制来源宽字符数组的指针 |
count | - | 要复制的宽字符数 |
返回值
返回 dest
的副本。
注意
此函数不考虑本地环境,并且不注意其所复制的 wchar_t 对象的值:亦会复制空字符和非法字符。
示例
运行此代码
#include <iostream> #include <cwchar> #include <locale> #include <clocale> int main() { std::setlocale(LC_ALL, "en_US.utf8"); std::wcout.imbue(std::locale("en_US.utf8")); wchar_t str[] = L"αβγδεζηθικλμνξοπρστυφχψω"; std::wcout << str << '\n'; std::wmemmove(str+4, str+3, 3); // 从 [δεζ] 复制到 [εζη] std::wcout << str << '\n'; }
可能的输出:
αβγδεζηθικλμνξοπρστυφχψω αβγδδεζθικλμνξοπρστυφχψω
参阅
在两个不重叠数组间复制一定量宽字符 (函数) | |
移动一个缓冲区到另一个 (函数) | |
(C++11) |
将某一范围的元素复制到一个新的位置 (函数模板) |
按从后往前的顺序复制一个范围内的元素 (函数模板) |