memmove,将num字节的值从源指向的位置复制到目标指向的内存块。
允许目标和源有重叠。
当目标区域与源区域没有重叠则和memcpy函数功能相同。
宽字符版本是wmemmove,安全版本加_s;
#include "stdafx.h"
#include<iostream>using namespace std;int main(int argc, char* argv[])
{setlocale(LC_ALL, "chs");char str1[7] = "aabbcc";cout << str1 << endl;memmove(str1 + 2, str1, 4);cout << str1 << endl;wchar_t str2[] = L"123456789";printf("%ls\n", str2);wmemmove(str2 + 4, str2 + 3, 3); // copy from [δεζ] to [εζη]printf("%ls\n", str2);wmemmove(str2, str2 + 3, 3);wcout << str2 << endl;char str3[] = "0123456789";printf("Before: %s\n", str3);memmove_s((str3 + 1), strnlen(str3 + 1, 10), str3, 5);printf_s(" After: %s\n", str3);return 0;
}
要能输出wchar_t类型,需要这句,
setlocale(LC_ALL, "chs");