C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- std::basic_string
- std::basic_string_view
- ç©ºç»æ¢åèå符串
- ç©ºç»æ¢å¤åèå符串
- ç©ºç»æ¢å®½å符串
- std::towlower
- std::wctype
- std::iswctype
- std::iswcntrl
- std::iswprint
- std::iswspace
- std::iswblank
- std::iswgraph
- std::iswpunct
- std::iswalnum
- std::iswalpha
- std::iswupper
- std::iswlower
- std::iswdigit
- std::iswxdigit
- std::towupper
- std::wctrans
- std::towctrans
- std::wcstol, std::wcstoll
- std::wcstoul, std::wcstoull
- std::wcstof, std::wcstod, std::wcstold
- std::wcstoimax, std::wcstoumax
- std::wcslen
- std::wcscpy
- std::wcsncpy
- std::wcscat
- std::wcsncat
- std::wcscmp
- std::wcscoll
- std::wcsncmp
- std::wcsxfrm
- std::wcschr
- std::wcsrchr
- std::wcspbrk
- std::wcsspn
- std::wcscspn
- std::wcsstr
- std::wcstok
- std::wmemcpy
- std::wmemmove
- std::wmemcmp
- std::wmemchr
- std::wmemset
- std::char_traits
- 注é
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >åç¬¦ä¸²åº >ç©ºç»æ¢å®½å符串 > std::wmemcpy
std::wmemcpy
| å®ä¹äºå¤´æä»¶ <cwchar>
|
||
| wchar_t* wmemcpy( wchar_t* dest, const wchar_t* src, std::size_t count ); |
||
ä» src ææåç宽å符æ°ç»åç¡®å¤å¶ count 个ç¸ç»§ç宽åç¬¦å° dest ææåç宽å符æ°ç»ãè¥å¯¹è±¡éå ï¼åè¡ä¸ºæªå®ä¹ãè¥ count 为é¶ï¼å彿°ä¸åä»»ä½äºã
åæ°
| dest | - | æåå¤å¶ç®æ 宽å符æ°ç»çæé |
| src | - | æåå¤å¶æ¥æºå®½å符æ°ç»çæé |
| count | - | è¦å¤å¶ç宽åç¬¦æ° |
è¿åå¼
dest
注æ
æ¤å½æ°å¯¹åèå符串çç±»ä¼¼çæ¬æ¯ std::strncpy ï¼èé std::strcpyã
æ¤å½æ°ä¸èèæ¬å°ç¯å¢ï¼èä¸ä¸å ³å¿å ¶æå¤å¶ç wchar_t 对象çå¼ï¼äº¦å¤å¶ç©ºåç¬¦è¿æéæ³å符ã
示ä¾
è¿è¡æ¤ä»£ç
#include <iostream> #include <cwchar> #include <clocale> #include <locale>  int main(void) { wchar_t from1[] = L"नमसà¥à¤¤à¥"; const size_t sz1 = sizeof from1 / sizeof *from1; wchar_t from2[] = L"Ô²Õ¡ÖÖ"; const size_t sz2 = sizeof from2 / sizeof *from2; wchar_t to[sz1 + sz2];  std::wmemcpy(to, from1, sz1); // å¤å¶ from1 ï¼æ²¿çå ¶ç©ºç»æ¢ç¬¦ std::wmemcpy(to + sz1, from2, sz2); // åé from2 ï¼æ²¿çå ¶ç©ºç»æ¢ç¬¦  std::setlocale(LC_ALL, "en_US.utf8"); std::cout.imbue(std::locale("en_US.utf8")); std::wcout << "Wide array contains: "; for(size_t n = 0; n < sizeof to / sizeof *to; ++n) if(to[n]) std::wcout << to[n]; else std::wcout << "\\0"; std::wcout << '\n'; }
å¯è½çè¾åºï¼
Wide array contains: नमसà¥à¤¤à¥\0Ô²Õ¡ÖÖ\0
åé
| å¤å¶æ¥èªä¸ä¸ªå符串çä¸å®éå符ç»å¦ä¸ä¸ª (彿°) | |
| å¨ä¸¤ä¸ªå¯è½éå çæ°ç»é´å¤å¶ä¸å®é宽å符 (彿°) |