wchar_t,char,string,wstring等的总结
一、LPSTR LPCSTR LPTSTR LPCTSTR等
LPSTR = CHAR * = char *
LPCSTR = const CHAR * = char * //c意为const
LPTSTR = LPWSTR = WCHAR * = wchar_t * //(Unicode编码)
= LPSTR = CHAR * = char * //(多字节编码) TCHAR = wchar_t //Unicode编码
= char //多字节编码
二、CString与char *
- 多字节环境:CString等价于const char *,因此,在const char *的参数下可以直接使用CString,但是不能用于char *。
例:
void show(const char * name)
{
AfxMessageBox(name);
}
......... CString name("luotian");
show(name); //可以通过
CString可以智能化
在多字节环境下无论怎么赋值都是ASCII编码,比如:CString a(L"luotian"),加上L修饰,CString依然将它进行ASCII编码。
在Unicode环境下,无论怎么赋值都是Unicode编码,比如:CString a("luotian"),不加L修饰依然可以通过。
CString与LPCTSTR
在函数参数需要LPTSTR,LPCTSTR等等时,CString变量可以直接使用.
//例如:在Unicode环境下:
CString a("Luotian");
MessageBox(a);
CString->LPTSTR
//强制类型转换
CString a("Luotian");
LPTSTR p = (LPTSTR)(LPCTSTR)a; //用CString的GetBuffer()方法
LPTSTR p = a.GetBuffer();
LPTSTR->CString
三、char * 与 wchar_t *的互换(重点)
ASCII->Unicode
LPSTR source ="Luotian";//源串
size_t len = strlen(source) + ;
size_t converted = ;
LPTSTR dest= (LPTSTR)malloc(len*sizeof(WCHAR)); mbstowcs_s(&converted,dest,len,source,_TRUNCATE);
- Unicode->ASCII
#define WChar2Char(lpWideCharStr,cbWideChar,lpMultiByteStr,cbMultiByte) \
WideCharToMultiByte(CP_ACP, , lpWideCharStr, cbWideChar, lpMultiByteStr, cbMultiByte, NULL, NULL)
WChar2Char(source,-,dest,cb字节数);
TCHAR dest[];
LPCWSTR source=L"Luotian";
WChar2Char(source, -, dest, );
四、string和wstring
string->const char *(LPCSTR)和wstring->const wchar_t * (等价于LPCTSTR)
//采用.c_str()方法;
string a("Luotian");
const char * p = a.c_str();
char * p->string
char * p = "luotian";
string a=p;
//string和CString的一个区别在于:函数参数需要LPTSTR时,CString可以直接用,而string不行。
wchar_t,char,string,wstring等的总结的更多相关文章
- wchar_t char string wstring 之间的转换
wchar_t char string wstring 之间的转换 转:http://blog.csdn.net/lbd2008/article/details/8333583 在处理中文时有时需要进 ...
- 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换 [转]
本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下. #ifndef USE_H_ #define USE_H_ # ...
- 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下-复制代码 代码如下: #ifndef USE_H_ ...
- wchar_t与char、wstring与string的相互转换
个人倾向于使用优秀的开源库做这个. 最近使用boost进行转换,代码极其简单: boost::filesystem::path src(wchar_t); char = src.string().c_ ...
- CString 转 char*; wstring 转 string
1. CString 转 char* ); CString name; name.Format(_T("bookUC%d.txt"),m_ID); std::wstring _n ...
- C++的中英文字符串表示(string,wstring)
在C++中字符串类的string的模板原型是basic_string template <class _Elem, class traits = char_traits<_Elem> ...
- C++的中英文字符串表示(string,wstring),使用wcout.imbue(std::locale("chs"));本地化解析编码
在C++中字符串类的string的模板原型是basic_string template <class _Elem, class traits = char_traits<_Elem> ...
- C++字符类型总结区别wchar_t,char,WCHAR
转至:http://www.360doc.com/content/12/0807/01/9290626_228750141.shtml 1.区别wchar_t,char,WCHAR ANSI:即 ch ...
- c++ 字符类型总结区别wchar_t,char,WCHAR(转)
1.区别wchar_t,char,WCHAR ANSI:即 char,可用字符串处理函数:strcat( ),strcpy( ), strlen( )等以str打头的函数. UNICODE:wch ...
随机推荐
- node.js中事件触发器events的使用
node.js是基于事件驱动的,通过events,我们可以方便的创建事件,并通过触发事件来调用我们自定义的监听函数. 所有能触发事件的对象都应该是 EventEmitter 类的实例,一般我们自定义一 ...
- jqPaginator分页(每次只取一页数据)
应用技术点:jqPaginator.template7.bootstrap.css 参考网址: jqPaginator:http://jqpaginator.keenwon.com/#a3 templ ...
- TortoiseSVN设置Beyond Compare为版本比较、差异合并工具
打开乌龟的setting==>Diff Viewer 比较"D:\develop\Beyond Compare 4\BCompare.exe" %base %mine /ti ...
- jsp获取ip使用request.getRemoteAddr返回0:0:0:0:0:0:0:1
JAVA Web开发过程中,很多场景下需要获取访问终端的IP,对应方法getRemoteAddr.例如调试过程中本地回环ip地址是127.0.0.1,忽然有一天返回 0:0:0:0:0:0:0:1,这 ...
- vue 获取组件 和 dom 对象 ref/el
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- js数据类型和变量
Number JavaScript不区分整数和浮点数,统一用Number表示: 123 0.345 -99 NaN 当无法计算结果时用NaN表示 Infinity 表示无限大,当数值超过js的Numb ...
- 网页 PHP 动态师范
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 比较两个List列表,取得List中不同项返回
/// <summary> /// 比对模型及属性数组 /// </summary> /// <typeparam name="TM">< ...
- cron Linux下的定时执行工具
说明:测试平台 Ubuntu 16.04.4 LTS cron是一个Linux下的定时执行工具,可以在无需人工干预的情况下运行作业.所以,在Linux中,周期性执行的任务一般由cron这个守护进程来 ...
- Python之路(第五篇) Python基本数据类型集合、格式化、函数
一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...