把char*转换为wchar_t*

用stdlib.h中的mbstowcs_s函数,可以通过下面的例子了解其用法:

char *CStr = "string to convert";

size_t len = strlen(CStr) + 1;

size_t converted = 0;

wchar_t *WStr;

WStr=(wchar_t*)malloc(len*sizeof(wchar_t));

mbstowcs_s(&converted, WStr, len, CStr, _TRUNCATE);

其结果是WStr中储存了CStr的wchar_t版本。

把wchar_t*转换为char*

和上面的方法类似,用stdlib.h中的wcstombs_s函数,例子:

wchar_t *WStr = L"string to convert";

size_t len = wcslen(WStr) + 1;

size_t converted = 0;

char *CStr;

CStr=(char*)malloc(len*sizeof(char));

wcstombs_s(&converted, CStr, len, WStr, _TRUNCATE);

这时WStr中的内容将被转化为char版本储存在CStr中。

另外还可以通过流的方法来char*类型转换为wchar_t*类型,但这样的转换得到的结果将是const类型,而类似的方法不能将wchar_t*类型转换为char*类型。

把(const)char*转换为const wchar_t*

需要用到 sstream 头文件:

char *cstr="string to convert";

wstringstream wss;

wss<<cstr;

再调用wss.str().c_str(); 即可得到 const wchar_t* 类型的返回值。

虽然stringstream流不能将wchar_t*转换成char*,但可以用来进行数值类型和字符串之间的转换,例如:

double d=2734792.934f;

stringstream ss;

ss<<d;

调用ss.str()可得到string类型字符串 ”273479e+006”,又如:

string str("299792458");

stringstream ss;

long i=0;

ss<<str;

ss>>i;

此时i=299792458。

把char*转换为wchar_t*相关推荐

  1. linux wchar t char,linux 下 Linux 下char转换为wchar_t

    LInux下使用mbstowcs函数可以将char转化为wchar_t 函数含义:convert a multibyte string to a wide char string 说明:        ...

  2. linux下中文的wchar转char,Linux 下char转换为wchar_t

    LInux下使用mbstowcs函数可以将char转化为wchar_t 函数含义:convert a multibyte string to a wide char string 说明:        ...

  3. C++中char*与wchar_t*之间的转换

    把char*转换为wchar_t* 用stdlib.h中的mbstowcs_s函数,可以通过下面的例子了解其用法: char *CStr = "string to convert" ...

  4. 不能将参数 2 从“const char *”转换为“LPCWSTR”【转】http://blog.sina.com.cn/s/blog_4a94a0db0100ktxp.html...

    : 不能将参数 2 从"const char *"转换为"LPCWSTR" 在VS2008下使用MFC编程遇到错误:        error C2664: & ...

  5. C/C++中char *与wchar_t*的几种转换方法

    多字节(char *)和宽字符(wchar_t *)之间的转换有几种方式,下面按照从通用到特殊的顺序逐一介绍. 1.C库函数 1.1 关键函数 (1) setlocale() 功能:配置地域化信息 头 ...

  6. char 转wchar_t 及wchar_t转char

    利用widechartomultibyte来转换的函数 通常适合于window平台上使用 #include <tchar.h> #include <windows.h> int ...

  7. char装cstring_VC中char*转换为CString

    最近在写程序时总会遇到char*转CString的问题,在参考<windows核心编程>后,自己写了一个函数来实现,如下: //功能:将char* 转换为CString //参数:待转换的 ...

  8. 不能从const char *转换为LPCWSTR --VS经常碰到

    不能从const char *转换为LPCWSTR 在VC 6.0中编译成功的项目在VS2005 vs2005.vs2008.vs2010中常会出现类型错误. 经常出现的错误是:不能从const ch ...

  9. char与wchar_t的转换

    来源于:http://www.cppblog.com/lf426/ wchar_t是C/C++的字符数据类型,是一种扩展的字符存储方式,wchar_t类型主要用在国际化程序的实现中,但它不等同于uni ...

最新文章

  1. OKR管理和绩效考核有什么不一样呢?
  2. 在Docker启动Cloudera并开始体验
  3. 不使用物理引擎实现防止群聚行为敌人扎堆
  4. 乙肝疫苗该怎么打(转)
  5. fir.im Weekly - 1000 个 Android 开源项目集合
  6. oracle12c之 控制pdb中sga 与 pga 内存使用
  7. EPSON 自带CCD图像处理包使用举例
  8. 【HTML】前端性能优化之CDN和WPO的比较
  9. BSOD 0x00000133
  10. 360全景图PS更换天空背景
  11. cas和saml_结合使用SAML安全令牌和Microsoft Web Services增强功能
  12. You must SET PASSWORD before executing this statement的解决方法 详细出处参考:http://www.jb51.net/article/39187.
  13. 最详细的【微信小程序+阿里云Web服务】开发部署指引(十一):开发小程序设置功能
  14. linux 网桥防火墙,linux透明防火墙(网桥形式).doc
  15. 怎样在百度UMeditor编辑器中插入腾讯和爱奇艺网站视频?
  16. graphql的调用
  17. 远程桌面无法连接解决办法
  18. sudo rm -rf /* 命令运行演示(管理员身份删除根目录所有文件)
  19. 实战七:手把手教你用TensorFlow进行验证码识别(上)
  20. 快速过熊掌号2.0新手任务了解熊掌号!

热门文章

  1. jenkins 手动执行_我常用的SpringBoot+Jenkins自动化部署技巧,贼好用,推荐给大家...
  2. oracle 跨服务器推送视图_oracle跨数据库视图
  3. InnoDB Monitors
  4. vue2实现自定义样式radio单选框
  5. [SHOI2017]组合数问题
  6. Python多版本共存配置
  7. Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
  8. Javascript学习笔记3 Javascript与BOM简介
  9. ios原子操作和各种锁
  10. [转]对C#泛型中的new()约束的一点思考