//对于会修改传入字符串的函数,最好使用安全的字符串函数:
1.字符串复制:
_tcscpy_s //注意这是个自适应的函数,根据程序是否为UNICODE会分别调用:
errno_t __cdecl wcscpy_s(_Out_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ rsize_t _SizeInWords, _In_z_ const wchar_t * _Src); //宽字符版本(第二个参数是字符数,可用_countof()宏计算)
errno_t __cdecl strcpy_s(_Out_z_cap_(_SizeInBytes) char * _Dst, _In_ rsize_t _SizeInBytes, _In_z_ const char * _Src); //多字节版本(第二个参数是字节数,用sizeof()计算)
2.字符串连接
_tcscat_s //注意这个也是自适应函数,根据是否设置UNICODE分别调用:
errno_t __cdecl wcscat_s(_Inout_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ rsize_t _SizeInWords, _In_z_ const wchar_t * _Src); //同上
errno_t __cdecl strcat_s(_Inout_z_cap_(_SizeInBytes) char * _Dst, _In_ rsize_t _SizeInBytes, _In_z_ const char * _Src); //同上
3.字符串切割
_tcstok_s //
wchar_t * __cdecl wcstok_s(_Inout_opt_z_ wchar_t * _Str, _In_z_ const wchar_t * _Delim, _Inout_ _Deref_prepost_opt_z_ wchar_t ** _Context); //这里不涉及缓冲区的溢出
_Check_return_ _CRTIMP_ALTERNATIVE char * __cdecl strtok_s(_Inout_opt_z_ char * _Str, _In_z_ const char * _Delim, _Inout_ _Deref_prepost_opt_z_ char ** _Context);
。。。。补充,未完待续