我想完成的任務:
對于一個字符串 LPCTSTR sourceCode
根據某些符合條件的字串subStr拷貝到一個新的字符串中。
使用安全的拷貝函數:_tcscpy_s實際是一個宏,根據是多字節編碼或者是Unicode編碼而調用不同的函數。
在tchar.h中我們可以找到:
#ifdef _UNICODE
.......
#define _tcscpy_s wcscpy_s
.......
#else
....
#define _tcscpy_s strcpy_s
...
#endif
原型:
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcscpy_s(_Out_z_cap_(_DstSize) wchar_t * _Dst, _In_ rsize_t _DstSize, _In_z_ const wchar_t * _Src);
使用:
wcscpy_s(dest,count,src);
src不得多于count-1個字符;
該函數最多將count-1個字符從src拷貝到dest中,然后在會在dest的字符串后面自動的加上'\0'
其中count是字符數,而不是字節數。
解析memcpy
使用 void* memcpy(void* dest , const void* src, size_t count);
特別注意這里的count指的是字節數。
當source中的字符數<count時memcpy會在將count后面全部清零。
但是允許拷貝count*sizeof(TCHAR)