wchar_t char string wstring 之间的转换

转:http://blog.csdn.net/lbd2008/article/details/8333583

在处理中文时有时需要进行wchar_t,char,string,wstring之间的转换。

其中char和string之间、wchar_t和wstring之间的转换较为简单,代码在vs2010下测试通过。

 
#include <iostream>
#include <string>
#include <tchar.h>
#include <Windows.h> using namespace std; //Converting&nbsp;a&nbsp;WChar&nbsp;string&nbsp;to&nbsp;a&nbsp;Ansi&nbsp;string
char *w2c(char *pcstr,const wchar_t *pwstr, size_t len)
{
int nlength=wcslen(pwstr);
//获取转换后的长度
int nbytes = WideCharToMultiByte( , , pwstr, nlength, NULL,,NULL, NULL );
if(nbytes>len) nbytes=len;
// 通过以上得到的结果,转换unicode 字符为ascii 字符
WideCharToMultiByte( ,, pwstr, nlength, pcstr, nbytes, NULL, NULL );
return pcstr ;
} int main(){ setlocale(LC_ALL,"chs");
char* cc = "this is a char 测试";
wchar_t* wcc = L"this is a wchar 测试";
string str("this is a string 测试 ");
wstring wstr = L"this is a wstring 测试"; //string to char
const char* char_test = str.c_str();
//cout<<"char_test:"<<char_test<<endl; //char to string
string ss = cc;
//cout<<"ss is :"<<ss<<endl; //wstring to wchar
const wchar_t* wchar_test = wstr.c_str();
//wcout<<wchar_test<<endl; //wchar to wstring
wstring wss = wcc;
wcout<<wcc<<endl; //char to wchar_t
wchar_t *wc = new wchar_t[str.size()+];
//swprintf(wc,L"%S",cc);
//wcout<<cc<<endl;
delete []wc; // wchar_t to char
char *pcstr = (char *)malloc(sizeof(char)*( * wcslen(wcc)+));
memset(pcstr , , * wcslen(wcc)+ );
w2c(pcstr,wcc, * wcslen(wcc)+) ;
free(pcstr); system("pause");
return ;
}

wchar_t char string wstring 之间的转换的更多相关文章

  1. wchar_t,char,string,wstring等的总结

    一.LPSTR LPCSTR LPTSTR LPCTSTR等 确定的类型: LPSTR = CHAR * = char * LPCSTR = const CHAR * = char * //c意为co ...

  2. Char* ,CString ,WCHAR*之间的转换

    关于Char* ,CString ,WCHAR*之间的转换问题 GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用 ...

  3. QString和char字符串数组之间的转换 (转)

    做串口通信时,碰到这样的问题,在Qt的界面中,我用QLineEdit对象负责显示发送和接收的文本,对其中的数据进行读取和显示使用的数据类型都是QString:但是,在对串口设备进行读写时,数据使用的形 ...

  4. Java基本数据类型、包装类与String类之间的转换

    一.基本数据类型与包装类之间的转换: import org.junit.Test; public class MainTest { /** * 基本数据类型与包装类之间的转换 */ @Test pub ...

  5. 关于Char* ,CString ,WCHAR*之间的转换问题

    GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用往往是CString,用IO流读文件数据又得到char *.得益 ...

  6. c++中char*\wchar_t*\string\wstring之间的相互转换

    string U2A(const wstring& str)//Unicode字符转Ascii字符 { string strDes; if ( str.empty() ) goto __end ...

  7. string与wstring之间的转换

    #include <string>std::string ws2s(const std::wstring& ws){    std::string curLocale = setl ...

  8. char*,wchar_t*,CString和BSTR之间的转换

    前言 本文并不尝试列举出所有的转换方法,只列举作者认为方便易用的方法. 1.char*和wchar_t*的相互转换 可以利用中间类_bstr_t(头文件comdef.h)方便的进行相互转换 const ...

  9. QString和char字符数组之间的转换(QTextCodec.toUnicode方法,特别注意\0的问题)

    How can I convert a QString to char* and vice versa ?(trolltech) Answer:In order to convert a QStrin ...

随机推荐

  1. A8几种内存

    1.SD卡(程序可写入,当成最次硬盘来用) 2.nandflash(程序可写入,当成一般硬盘来用) 3.DDR2(当A8板子的内存条来用)

  2. git am PATCH_FILE_NAME自动打patch失败后的操作方法

    1.找到打入patch不成功的patch 从打入patch的失败信息可以找到 2.根据patch的index重新打入 patch,将可以合并的内容合并,冲突的部分单独生成文件 比如出问题patch的i ...

  3. Vue+Webpack配置css-loader时报错:Module build failed: Unknown word

    使用Vue+Webpack搭建工程时,在webpack.config.js中的module的rules里针对各种文件配置加载工具.在针对css文件配置时遇到一个问题:打包构建时报错——Module b ...

  4. 记一次Servlet中getAttribute的错误.

    package com.ykmimi.order.servlet; import java.io.IOException; import javax.servlet.RequestDispatcher ...

  5. Angel 实现FFM 一、对于Angel 和分布式机器学习的简单了解

    Angel是腾讯开源的一个分布式机器学习框架.是一个PS模式的分布式机器学习框架. https://github.com/Angel-ML/angel   这是github地址. 我了解的分布式机器学 ...

  6. activemq、rabbitmq、kafka原理和比较

    一.activemq 虽然是java写的消息队列,但是提供Java, C, C++, C#, Ruby, Perl, Python, PHP各种客户端,所以语言上是没什么问题的.配置和使用,基本上是j ...

  7. 随机梯度下降算法求解SVM

    测试代码(matlab)如下: clear; load E:\dataset\USPS\USPS.mat; % data format: % Xtr n1*dim % Xte n2*dim % Ytr ...

  8. bzoj-3195-状压dp

    3195: [Jxoi2012]奇怪的道路 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 600  Solved: 395[Submit][Statu ...

  9. 基于Oracle的SQL优化(崔华著)-整理笔记-第5章“Oracle里的统计信息”

    第5章“Oracle里的统计信息” 详细介绍了Oracle数据库里与统计信息相关的各个方面的内容,包括 Oracle数据库中各种统计信息的分类.含义.收集和查看方法,以及如何在Oracle数据库里正确 ...

  10. ORACLE导入导出工具的使用

    ORACLE导出工具exp的使用:  1.将数据库TEST(远程的数据库必须为连接标志符)完全导出,用户名system,密码manager,导出到D:\daochu.dmp中:       exp s ...