博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 字符串转换
阅读量:5794 次
发布时间:2019-06-18

本文共 1263 字,大约阅读时间需要 4 分钟。

一.在字符串前加一个L作用:  

  如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。  
  strlen("asd") = 3;   

  strlen(L"asd") = 6;  

二.LPCTSTR和LPCWSTR

LPCTSTR不是一个类型,而是两种类型:LPCSTR和LPCWSTR其中之一。会根据你当前程序是否使用UNICODE字符集来变成那二者之一。如果使用UNICODE字符集,则LPCTSTR = LPCWSTR,否则LPCTSTR = LPCSTR。

标准库的std::string转换成LPCSTR很简单:直接调用c_str()即可。例:
std::string a="abc";
LPCSTR str = a.c_str();

标准库还有一个wstring,代表宽字符的string,std::wstring转换成LPCWSTR也一样很简单:
std::wstring a = L"abc";
LPCWSTR str = a.c_str();

如果要是std::string转换成LPCWSTR或者std::wstring转换成LPCSTR那就比较麻烦了,需要调用MultiByteToWideChar或WideCharToMultiByte进行字符集之间的转换。不过大多数时候不需要这种交叉转换,一个程序一般只会使用一种字符集。

三.int转化为string

1.C++11中有一个to_string方法std::to_string是C++标准(2011年)的最新版本中引入的功能。旧的编译器可能不支持它。
2.只能用笨方法,如下:
int转string
int n = 0;
std::stringstream s;
std::string str;
s<<n;
s>>str;
也可以这样:
int num = 100;
char str[25];
itoa(num, str, 10);
string转int
std::string str = "123";
int n = atoi(str.c_str());

四.int转LPCWSTR

include<stdlib.h>
using std::wstring;
LPCWSTR to INT:
LPCWSTR wstr = L"abc";
wstring tempstr( wstr);
int value = _wtoi( tempstr.c_str());
INT to LPCWSTR:
int value = 123;
wchar_t cha[10];
_itow_s( value, cha, 10, 10);
函数第一个参数是要转换的整数, 
第二个参数是定义好的wchar_t型数组, 
第三个参数是要占用数组中的几个位置(注:比数字位置多1), 
第四个参数是数字类型(二进制就是2,十进制就是10)

转载于:https://www.cnblogs.com/kevinWu7/p/10163535.html

你可能感兴趣的文章
js 经过修改改良的全浏览器支持的软键盘,随机排列
查看>>
Mysql读写分离
查看>>
探寻Interpolator源码,自定义插值器
查看>>
一致性哈希
查看>>
Web日志安全分析工具 v2.0发布
查看>>
统计数据库大小
查看>>
第十六章:脚本化HTTP
查看>>
EXCEL表中如何让数值变成万元或亿元
查看>>
L104
查看>>
CTOR有助于BCH石墨烯技术更上一层楼
查看>>
被遗忘的CSS
查看>>
Webpack中的sourcemap以及如何在生产和开发环境中合理的设置sourcemap的类型
查看>>
做完小程序项目、老板给我加了6k薪资~
查看>>
自制一个 elasticsearch-spring-boot-starter
查看>>
【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师
查看>>
一份关于数据科学家应该具备的技能清单
查看>>
机器学习实战_一个完整的程序(一)
查看>>
Web框架的常用架构模式(JavaScript语言)
查看>>
CSS盒模型
查看>>
ng2路由延时加载模块
查看>>