Пространства имён
Варианты
Действия

std::wmemmove

Материал из cppreference.com
< cpp‎ | string‎ | wide
 
 
 
Широкие строки с завершающим нулём
Функции
Операции с символами
Преобразования в числовые форматы
(C++11)(C++11)
(C++11)(C++11)
Операции со строками
Операции с массивами
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); // копирует из [δεζ] в [εζη]
    std::wcout << str << '\n';
}

Возможный вывод:

αβγδεζηθικλμνξοπρστυφχψω
αβγδδεζθικλμνξοπρστυφχψω

[править] Смотрите также

копирует определённое количество широких символов между двумя неперекрывающимися массивами
(функция) [править]
перемещает один буфер в другой
(функция) [править]
копирует диапазон элементов в новое место
(шаблон функции) [править]
копирует диапазон элементов в обратном порядке
(шаблон функции) [править]