CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char
来源:互联网 发布:淘宝上好看的女装店铺 编辑:程序博客网 时间:2024/05/22 06:09
一.类型简介
1.CString:动态的TCHAR数组。它是一个完全独立的类,封装了“+”等操作符和字符串操作方法,换句话说就是CString是对TCHAR操作的方法的集合。
2.LPCTSTR:常量的TCHAR指针,其定义为
其中
P表示这是一个指针
C表示是一个常量
T表示在Win32环境中, 有一个_T宏
STR表示这个变量是一个字符串
。
2.LPTSTR:TCHAR指针,其定义为
L、P、T的含义同上。
3.TCHAR:TCHAR其实是一个宏,其定义为:
也就是说,如果我们使用unicode编码,那么TCHAR指的就是wchat_t,如果我们使用的是ASCII编码,那么TCHAR指的就是char,这样处理的目的是为了程序的可移植性。T表示在Win32环境中, 有一个_T宏。
4.WCHAR:WCHAR其实也是一个宏,表示的就是wchar_t,为了书写方便重新定义的一个宏而已,其定义为:
5.string:string是c++中的字符串变量,因为操作c类型的char非常麻烦,而且很容易出现内存泄漏,所以c++就对c中的char 进行了封装,其中
因为string.h是C字符串头文件。
string中常用的函数有:
k) max_size() //返回字符的可能最大个数
01
02
03
04
05
06
07
08
09
10
二.相互转化
1
2.CString和LPTSTR的转化:
下述转法虽然可以,但是却不安全:
因为本来转化后的字符串变得可以修改了,造成了安全隐患。
正确的转化方法为:
3.CString和WCHAR*(wchar_t*)的转化
方法一:使用wcscpy()函数
方法二:使用wcscpy_s()函数
这个函数是上一个函数的安全版本,调用上一个函数如果pWchar的内存不足时,容易引发意味的错误,但是wcscpy_s()则不会,应该其内存大小已经指定出来了:
方法三:使用_tcscpy()函数
方法四:使用_tcscpy_s()函数
同wcscpy_s()一样,_tcscpy_s()函数也是_tcscpy()函数的安全版本:
4.CString和char*的转化
方法一:使用wcstombs()函数
方法二:使用wcstombs_s()函数
同上面一样,wcstombs_s()是wcstombs()的安全版本:
总结:
- CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析
- CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析
- CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析
- CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析
- CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char
- CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析
- CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析 (转)
- char,w_char,TCHAR,数组,LPTSTR,LPCTSTR,string,CString
- char tchar wchar_t WCHAR LPCTSTR LPCWSTR
- char tchar wchar_t WCHAR LPCTSTR LPCWSTR
- char * ,wchar_t * ,WCHAR * , TCHAR *
- char wchar_t WCHAR TCHAR
- char、wchar_t、ACHAR、WCHAR、TCHAR
- char wchar_t WCHAR TCHAR ACHAR
- 关于char, wchar_t, TCHAR, _T,L,TEXT,_TEXT,LPSTR,LPCSTR,PWSTR,PCWSTR,LPTSTR,LPCTSTR的区别
- TCHAR, char, wchar_t, CString相关
- Cstring \char* \wchar_t \TCHAR (转载)
- 浅谈CHAR、WCHAR、TCHAR、LPCTSTR等
- <开发笔记>搭建LAMP服务器及使用FFMPEG进行切片、生成m3u8文件
- Hibernate HQL查询
- ubuntu系统在vmware中无法联网问题解决
- LeetCode --- 54. Spiral Matrix
- ThinkPHP3.2.3连接SQLServer2000
- CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char
- LeetCode --- 55. Jump Game
- SQLite基础操作
- commit后lob字段使用临时表空间未释放
- Android Studio初步使用配置
- EFI接口详解
- 视频教学
- OpenTSDB-2.1.0RC1安装记录
- 前缀表达式