C++ 字符串操作经验集
来源:互联网 发布:淘宝输入nick不合法 编辑:程序博客网 时间:2024/05/16 08:47
转自:http://blog.csdn.net/elthe/archive/2006/10/02/1316780.aspx
C++ 字符串操作经验集
1. 字符类型和字符串
lchar,wchar_t,CHAR,BYTE,UCHAR,WCHAR,TCHAR,TBYTE
char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。
wchar_t是char的Unicode版本。相当于unsigned short。一般两个字节。
CHAR 和WCHAR分别是char和wchar_t的别名,决不会等同。
TCHAR是两面派,在当前编译方式为Unicode时等价于WCHAR,而ANSI(默认)方式时又等价于CHAR。
BYTE和UCHAR都相当于unsigned char,在取得字符编码(00~FF)的时候非常有用。
TBYTE也是两面派,在当前编译方式为Unicode时等价于WCHAR,而ANSI(默认)方式时又等价于BYTE。
lPSTR,PWSTR,PCSTR,PCWSTR,LPSTR,LPWSTR,LPCSTR,LPCWSTR
typedef CHAR *PSTR;
typedef WCHAR *PWSTR;
typedef CONST CHAR *PCSTR;
typedef CONST WCHAR *PCWSTR;
typedef CHAR *LPSTR;
typedef WCHAR *LPWSTR;
typedef __nullterminated CONST CHAR *LPCSTR;
typedef CONST WCHAR *LPCWSTR;
lPTSTR,LPTSTR,PCTSTR,LPCTSTR
在ANSI编译方式下,PTSTR和LPTSTR等价于LPSTR,在Unicode下等价于LPWSTR。
在ANSI编译方式下,PCTSTR和LPCTSTR等价于LPCSTR,在Unicode下等价于LPCWSTR。
lCStringA,CStringW,CString,XCHAR,YCHAR,PXSTR,PYSTR,PCXSTR,PCYSTR
CstringA是由CHAR组成的字符串
CStringW是由WCHAR组成的字符串
CString是由TCHAR组成的字符串
XCHAR表示和字符串组成字符相同的字符,YCHAR表示和字符串组成字符不同的字符
PXSTR表示和字符串组成字符相同的字符串,PYSTR表示和字符串组成字符不同的字符串
PCXSTR表示和字符串组成字符相同的CONST字符串,PCYSTR表示和字符串组成字符不同的CONST字符串
2. 字符串类型转换
l用构造方法进行CStringT类之间的转换
直接调用CString,CstringA等的构造方法,把不同的字符串类作为参数,在构造中实现转换。
CString str1;
CStringA strA1(str1); //强制转换成ANSI字符串
……对strA1进行**操作……
CString str2(strA1); //变换回去
lCStringT类和字符(串)之间的转换
调用CString的GetAt方法,可以得到XCHAR,即与字符串类组成字符相同的字符。
CStringA的GetAt方法得到的是CHAR,
CString的GetAt方法得到的是TCHAR,
CStringW的GetAt方法得到的是WCHAR。
此外,也可以使用象数组索引下标一样得到XCHAR,如 str1[2]等价于str1.GetAt(2)。
调用CString的GetBuffer方法,可以得到PXSTR,即与字符串类组成字符相同的字符串。
CStringA的GetBuffer方法得到的是LPSTR,
CString的GetBuffer方法得到的是LPTSTR,
CStringW的GetBuffer方法得到的是LPWSTR。
调用CString的GetString方法,也可以得到PCXSTR,即与字符串类组成字符相同的const字符串。
CStringA的GetBuffer方法得到的是LPCSTR,
CString的GetBuffer方法得到的是LPCTSTR,
CStringW的GetBuffer方法得到的是LPCWSTR。
l字符(串)之间的转换
使用ATL的字符串转换宏,可以实现不同类型的字符串转换。
在宏名称里面,分别用A,W,T代表ANSI字符串,Unicode字符串,以及TCHAR字符串。
并分别用CA,CW,CT来代表相应的const字符串。
对ANSI字符串进行转换操作的宏有A2W,A2T,A2CW,A2CT。
对Unicode字符串进行转换操作的宏有W2A,W2T,W2CA,W2CT。
对TCHAR字符串进行转换操作的宏有T2W,T2A,T2CW,T2CA。
*需要注意的是: 在使用以上宏的时候,必须在程序中定义如下宏,
USES_CONVERSION;
3. 字符串与其他类型之间的转换
l字符串和INT的相互转换
通过atoi,_wtoi,_ttoi可以分别把ANSI,Unicode和TCHAR字符串转换成INT。
通过_itoa,_itow,_itot可以分别把INT转换成ANSI,Unicode和TCHAR字符串。
l字符串和LONG的相互转换
通过atol,_wtol,_ttol可以分别把ANSI,Unicode和TCHAR字符串转换成LONG
通过_ltoa,_ltow,_ltot可以分别把INT转换成ANSI,Unicode和TCHAR字符串。
l字符串和DOUBLE的相互转换
通过atof,_wtof,_ttof可以分别把ANSI,Unicode和TCHAR字符串转换成DOUBLE
通过_fcvt 可以把DOUBLE数值转换为ANSI字符串。
- C++ 字符串操作经验集
- C++ 字符串操作经验集
- C++ 字符串操作经验集
- C++ 字符串操作经验集
- C++ 字符串操作经验集
- C++ 字符串操作经验集
- C++ 字符串操作经验集
- C/C++,Windows/MFC, char, wchar_t, TCHAR 字符全总结 & c++字符串操作经验集
- C/C++,Windows/MFC, char, wchar_t, TCHAR 字符全总结 & c++字符串操作经验集(转)
- C++ 字符串操作经验集(转)
- CString 操作指南+C++ 字符串操作经验集
- C 字符串操作函数集
- C字符串操作:字符串反转
- 字符串操作--c语言
- C语言字符串操作
- C字符串操作函数
- c操作翻转字符串
- C字符串操作函数
- 關於.net應用程序的一點不足的思考
- 内存泄漏及其检测工具 (作者:蒋涛)
- VC内存泄漏检测工具_Visual Leak Detector
- linux下安装oracle 11g总结
- 网络工程师、信息系统项目管理师、信息系统集成高级项目经理证书寻挂靠
- C++ 字符串操作经验集
- 关于C++对象的自杀
- android最恶心的是什么?
- c调用c++
- Android整体印象
- LINK2005错误
- 为Centos5添加网易163、搜狐的yum源
- http协议学习 - 基础概念篇
- jsp禁用缓存