xyjzsh

memcpy,_tcscpy_s的使用

我想完成的任务:
对于一个字符串 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)

posted on 2010-10-22 17:11 呆人 阅读(12802) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年12月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜