std::wmemmove
Определено в заголовке <cwchar> | ||
|---|---|---|
wchar_t* wmemmove( wchar_t* dest, const wchar_t* src, std::size_t count ); |
Копирует ровно count последовательных широких символов из массива широких символов, на который указывает src, в массив широких символов, на который указывает dest.
Если count равно нулю, функция ничего не делает.
Массивы могут перекрываться: копирование происходит так, как если бы широкие символы были скопированы в временный массив широких символов, а затем скопированы из временного массива в dest.
Параметры
| dest | - | указатель на массив широких символов, в который будет произведена копирование |
| src | - | указатель на массив широких символов, из которого будет произведена копирование |
| count | - | количество широких символов для копирования |
Возвращаемое значение
Возвращает копию dest.
Примечания
Эта функция не зависит от локали и не обращает внимания на значения объектов wchar_t, которые она копирует: нули, а также недействительные символы копируются тоже.
Пример
#include <clocale>
#include <cwchar>
#include <iostream>
#include <locale>
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); // copy from [δεζ] to [εζη]
std::wcout << str << '\n';
}Возможный вывод:
αβγδεζηθικλμνξοπρστυφχψω αβγδδεζθικλμνξοπρστυφχψω
См. также
| копирует определенное количество широких символов между двумя неперекрывающимися массивами (функция) |
|
| перемещает один буфер в другой (функция) |
|
|
(C++11) | копирует диапазон элементов в новое местоположение (шаблон функции) |
| копирует диапазон элементов в обратном порядке (шаблон функции) |
|
C документация для wmemmove |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/wide/wmemmove