◐ Shell
clean mode source ↗

std::wmemmove — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

Определено в заголовочном файле <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';
}

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

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

Смотрите также