基于标准库实现string和wstring的转换
// convert string to wstring
std::wstring to_wstring(const std::string& str,
const std::locale& loc = std::locale())
{
std::vector<wchar_t> buf(str.size());
std::use_facet<std::ctype<wchar_t>>(loc).widen(str.data(),//ctype<char_type>
str.data() + str.size(),
buf.data());//把char转换为T
return std::wstring(buf.data(), buf.size());
} // convert wstring to string with ’?’ as default character
std::string to_string(const std::wstring& str,
const std::locale& loc = std::locale())
{
std::vector<char> buf(str.size());
std::use_facet<std::ctype<wchar_t>>(loc).narrow(str.data(),
str.data() + str.size(),
' ? ', buf.data());//把T转换为char
return std::string(buf.data(), buf.size());
}
char c = 'a';
bool bl = use_facet<ctype<char>>(locale("")).is(ctype_base::lower, c);
要比Convenience Functions std::islower(c,loc)效率高。
member type | definition | description |
---|---|---|
char_type | The template parameter (charT) | Character type |
The class also inherits ctype_base::mask, which is used extensively as a parameter and return type by member functions (see
ctype_base).
基于标准库实现string和wstring的转换的更多相关文章
- 基于标准库的string类实现简单的字符串替换
感觉基本功还是不扎实,虽然能做些程序但是现在看来我还是个初学者(primer),试着完成习题结果还得修修改改. 废话不多说,实现功能很简单,<C++ Primer>9.5.2节习题. // ...
- 谈谈两种标准库类型---string和vector
两种最重要的标准库---string和vector string和vector是两种最重要的标准库类型,string表示可变长的字符序列,vector存放的是某种给定类型对象的可变长序列. 一.标准库 ...
- C++ Primer 第三章 标准库类型string运算
1. 标准库类型 string string表示可变长的字符序列,使用string必须首先包含string头文件.如何初始化类的对象是由类本身决定的. int n; string s1;//默认初始化 ...
- 彻底弄清c标准库中string.h里的常用函数用法
在我们平常写的c/c++程序,一些算法题中,我们常常会用到c标准库中string.h文件中的函数,这些函数主要用于处理内存,字符串相关操作,是很有用的工具函数.而且有些时候,在笔试或面试中也会出现让你 ...
- string 到 wstring的转换
string 到 wstring的转换_一景_新浪博客 string 到 wstring的转换 (2009-08-10 20:52:34) 转载▼ 标签: 杂谈 ...
- 标准库类型string
定义和初始化string对象 初始化string对象方式: string s1;//默认初始化,s1是一个字符串 string s2(s1);//s2是s1的副本 string s2 = s1;//等 ...
- C++ 标准库类型-String,Vector and Bitset
<C++ Primer 4th>读书摘要 最重要的标准库类型是 string 和 vector,它们分别定义了大小可变的字符串和集合.这些标准库类型是语言组成部分中更基本的那些数据类型(如 ...
- 走进C标准库(8)——"string.h"中函数的实现相关字符串操作函数
我的strcat: char *strcat(char *dest,char *src) { char * reval = dest; while(*dest) dest++; while(*src) ...
- C++标准库之string类型
stirng类型 简介: C++标准库提供的类型:string 长度可变的字符串 操作简单 仅为包含个人常用函数 头文件 string 类型与其它的标准库类型相同,都需要包含对应的头文件 #incl ...
随机推荐
- 炸掉你的城堡!(pygame獾兔大战)
代码修改bug,添加注释等,獾的速度加快之后很难-- git地址: https://github.com/Jailman/blowupyrcastle.git 游戏资源使用了文章中附带的下载,原版文章 ...
- Android逆向之旅---Native层的Hook神器Cydia Substrate使用详解
一.前言 在之前已经介绍过了Android中一款hook神器Xposed,那个框架使用非常简单,方法也就那几个,其实最主要的是我们如何找到一个想要hook的应用的那个突破点.需要逆向分析app即可.不 ...
- Ubuntu终端点击确定按钮的方法
Ubuntu终端里出现需要点击 确定 按钮的时候,直接鼠标点击 确定 是不生效的,这个时候需要利用tab键选中这个 确定 按钮,然后回车键就可以了.
- 如何在win10(64位系统)上安装apache服务器
今天装了Apache服务器,下面是我总结的方法: 一,准备软件 1.64位的apache版本 传送门:http://www.apachelounge.com/download/ 2.VC11运行库 下 ...
- magento关联产品
<?php $related= $_product->getRelatedProducts(); foreach($related as $_item): $_item = $_item- ...
- 常用sql语法初级
博主在工作中,常常需要使用sql语句来进行查询,总结发现,灵活使用这几个要点,就可以应付大部分简单情况. 一.连接:根据两个或多个表中的列之间的关系,从这些表中查询数据. JOIN或INNER JOI ...
- 关于递归函数中的return位置
1.对于求是否有解的问题一般使用bool dfs() 其中return 可以放在递归式后面 2.对于需要更新解的问题一般使用int dfs() 其中return 不能放在递归式后面,必须放在函数最 ...
- bootstrap中如何控制input的宽度
☆1☆ bootstrap中如何控制input的宽度: v2版本:定义了很多class,可用在input. "input-block-level"."input-mini ...
- PHP开源的项目管理软件
禅道 http://devel.zentao.net/help-book-zentaophphelp.html PHP session详讲 http://blog.163.com/lgh_2002/b ...
- 使用OPRT库来实现局域网视频实时传输
转载,侵删 4.代码设计 目的:使用OPRT库来实现局域网视频实时传输 参考samle_venc.c进行ortp开发 4.1.程序流程如下 step1:定义变量,VPSS,VENC,零散变量 step ...