C++宽字符与普通字符的转换实例详解
发布时间 - 2026-01-11 01:53:52 点击率:次C++宽字符与普通字符的转换实例详解

把字符串转换成宽字符串,
实例代码:
wstring string2Wstring(string sToMatch)
{
#ifdef _A_WIN
int iWLen = MultiByteToWideChar( CP_ACP, 0, sToMatch.c_str(), sToMatch.size(), 0, 0 ); // 计算转换后宽字符串的长度。(不包含字符串结束符)
wchar_t *lpwsz = new wchar_t [iWLen + 1];
MultiByteToWideChar( CP_ACP, 0, sToMatch.c_str(), sToMatch.size(), lpwsz, iWLen ); // 正式转换。
lpwsz[iWLen] = L'/0';
wstring wsToMatch(lpwsz);
delete []lpwsz;
#elif _A_LINUX
setlocale( LC_CTYPE, "" ); // 很重要,没有这一句,转换会失败。
int iWLen = mbstowcs( NULL, sToMatch.c_str(), sToMatch.length() ); // 计算转换后宽字符串的长度。(不包含字符串结束符)
wchar_t *lpwsz = new wchar_t[iWLen + 1];
int i = mbstowcs( lpwsz, sToMatch.c_str(), sToMatch.length() ); // 转换。(转换后的字符串有结束符)
wstring wsToMatch(lpwsz);
delete []lpwsz;
#endif
return wsToMatch;
}
//把宽字符串转换成字符串,输出使用
string wstring2string(wstring sToMatch)
{
#ifdef _A_WIN
string sResult;
int iLen = WideCharToMultiByte( CP_ACP, NULL, sToMatch.c_str(), -1, NULL, 0, NULL, FALSE ); // 计算转换后字符串的长度。(包含字符串结束符)
char *lpsz = new char[iLen];
WideCharToMultiByte( CP_OEMCP, NULL, sToMatch.c_str(), -1, lpsz, iLen, NULL, FALSE); // 正式转换。
sResult.assign( lpsz, iLen - 1 ); // 对string对象进行赋值。
delete []lpsz;
#elif _A_LINUX
int iLen = wcstombs( NULL, sToMatch.c_str(), 0 ); // 计算转换后字符串的长度。(不包含字符串结束符)
char *lpsz = new char[iLen + 1];
int i = wcstombs( lpsz, sToMatch.c_str(), iLen ); // 转换。(没有结束符)
lpsz[iLen] = '/0';
string sResult(lpsz);
delete []lpsz;
#endif
return sResult;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# C++宽字符与普通字符的转换
# C++宽字符与普通字符
# C++ 字符串去重排序实例代码
# 浅谈c++ 字符类型总结区别wchar_t
# char
# WCHAR
# C++中输出十六进制形式的字符串
# c++中数字与字符串之间的转换方法(推荐)
# C++统计中英文大小写字母、数字、空格及其他字符个数的方法
# C++实现从输入中读取字符串
# C++计算每个字符出现的次数
# 不包含
# 转换成
# 这一
# 希望能
# 很重要
# 谢谢大家
# iWLen
# int
# MultiByteToWideChar
# wchar_t
# lpwsz
# size
# CP_ACP
# c_str
# brush
# cpp
# class
# strong
# pre
# wstring
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
微信小程序 require机制详解及实例代码
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
大连 网站制作,大连天途有线官网?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何在阿里云购买域名并搭建网站?
JavaScript常见的五种数组去重的方式
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
公司门户网站制作流程,华为官网怎么做?
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
原生JS获取元素集合的子元素宽度实例
音乐网站服务器如何优化API响应速度?
使用spring连接及操作mongodb3.0实例
php json中文编码为null的解决办法
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
深圳网站制作培训,深圳哪些招聘网站比较好?
青岛网站建设如何选择本地服务器?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
如何在阿里云通过域名搭建网站?
如何彻底卸载建站之星软件?
手机软键盘弹出时影响布局的解决方法
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
如何快速搭建高效服务器建站系统?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
如何快速上传建站程序避免常见错误?
Laravel如何使用Collections进行数据处理?(实用方法示例)
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
Android使用GridView实现日历的简单功能
如何快速搭建高效WAP手机网站?
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
Laravel如何处理表单验证?(Requests代码示例)
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
Bootstrap CSS布局之列表
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
如何实现建站之星域名转发设置?
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
利用 Google AI 进行 YouTube 视频 SEO 描述优化
零服务器AI建站解决方案:快速部署与云端平台低成本实践
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】

