分享

4.5.4 strcpy、wcscpy与

 vcand3d 2012-10-26

 strcpy、wcscpy与_tcscpy

C++标准库函数提供了字符和字符串的操作函数,并提供了其UNICODE版本,如:

  1. char *strcpy(char *strDestination, const char *strSource);  
  2. wchar_t *wcscpy(wchar_t *strDestination, const wchar_t *strSource); 

wcscpy()即为strcpy()的宽字符版本,与_T类似的,Visual C++提供了类似的同名函数:

  1. #ifdef  UNICODE   
  2.     #define _tcscpy     wcscpy  
  3. #else  
  4.     #define _tcscpy     strcpy  
  5. #endif 

因此我们建议这样书写代码:

  1. TCHAR src[] = _T("学习C++");  
  2. TCHAR dest[20];  
  3. _tcscpy(dest, src); 

比如,在使用printf()的时候,我会尝试使用_tprintf()。

同样的版本问题一样会困扰着main()函数:

  1. main( int argc, char *argv[ ], char *envp[ ]);  
  2. wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ]); 

再来看_tmain()的定义:

  1. #ifdef  UNICODE   
  2.     #define _tmain      wmain  
  3.     #define _tWinMain   wWinMain  
  4. #else  
  5.     #define _tmain      main  
  6.     #define _tWinMain   WinMain  
  7. #endif 

这就是为什么Win32控制台项目默认输出,提供一个_tmain()函数的缘故。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多