数值类型与std::string的相互转换

1.使用std::stringstream:

//将in_value值转换成out_type类型
template<class out_type, class in_value>
out_type StringTo(const in_value& t)
{
    std::stringstream sstream;
    sstream << t; //向流中传值
    out_type result; //这里存储转换结果
    sstream >> result; //向result中写入值
    return result;
}

2.使用std::ostringstream和std::istringstream

//将各种类型转换为string类型
template <typename T>
std::string toString(const T& t)
{
    std::ostringstream oss; //创建一个格式化输出流
    oss << t; //把值传递到流中
    return oss.str();
}

//将string类型转换为常用的数值类型
template <class Type>
Type ConvertTo(const std::string& str)
{
    std::istringstream iss(str);
    Type type;
    iss >> type;
    return type;
}

3.大小写转换:

//小写
std::string& ToLower(std::string& str)
{
    std::transform(str.begin(), str.end(), str.begin(), tolower);
    return str;
}

//大写
std::string& ToUpper(std::string& str)
{
    std::transform(str.begin(), str.end(), str.begin(), toupper);
    return str;
}

原文地址:https://www.cnblogs.com/sunwenqi/p/11857244.html

时间: 2024-08-26 13:27:53

数值类型与std::string的相互转换的相关文章

C++.【转】C++数值类型与string的相互转换

1.C++数值类型与string的相互转换 - JohnGu - 博客园.html(https://www.cnblogs.com/johngu/p/7878029.html) 2. 1.数值类型转换为string 1.1使用函数模板+ostringstream 使用函数模板将基本数据类型(整型.字符型.实型.布尔型)转换成string. 1 2 3 4 5 6 7 8 9 10 11 12 //ostringstream对象用来进行格式化的输出,常用于将各种类型转换为string类型 //os

c++11 数值类型和字符串的相互转换

string和数值类型转换 c++11提供了to_string方法,可以方便的将各种数值类型转换为 字符串类型: std::string to_string(int value); std::string to_string(long int value); std::string to_string(long long int value); std::string to_string(unsigned int value); std::string to_string(unsigned lo

C++中string转化为常用数值类型

//模板类 用于将string类型转化为 常用数值类型 template <class Type> Type stringToNum(const string& str) { istringstream iss(str); Type num; iss >> num; return num; }int main(int argc, char* argv[]){ string str; cin >> str; stringToNum<float>(str

数值类型与字节数组之间的相互转换

我们在上文 如何选择使用字符串还是数字呢? 中阐述了使用数值类型的好处,那么问题来了,如何在数值类型与字节数组之间相互转换呢? 我们先看看单个数值类型和字节数组之间的转换,我们以Integer类型为例: public static byte[] intToBytes(int x) {     ByteBuffer intBuffer = ByteBuffer.allocate(Integer.BYTES);     intBuffer.putInt(0, x);     return intBu

C++数值类型极限值的获取

C/C++中基本类型的数值极限值一般来说都是与具体平台有关的,在程序设计的过程中为了写出与平台无关的程序则必须通过合理科学的方法去获取各种类型的极值,常用的获取方法有两种:一种是传统的C语言所采用的预处理器常数,另一种方法则是通过标准库中所提供的模版类numeric_limits<>来获取这些极值. 下面先详解其用法后再评其优劣: 一.传统C语言的预处理器常数 在C++中这些C语言的预处理器常数任然可以用,一般对于各种基本固有类型的最大值宏为: INT_MAX.FLT_MAX.DBL_MAX.

std::string类详解

之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要.我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?).我们尽可以把它看成是C++的基本数据类型. 标准模板库(STL)提供了一个std::string类,其是std::basic_string的一个特化,它是一个容器类,可把字符串当作普通类型来使用,并支持比

QString, Std::string, char *相互转换

Qt 库中对字符串类型进行了封装,QString 类提供了所有字符串操作方法,给开发带来了便利. 由于第三方库的类型基本上都是标准的类型,即使用std::string或char *来表示字符 (串) 类型,因此在Qt框架下需要将QString转换成标准字符 (串) 类型.下面介绍QString, Std::string, char *相互转换转换方法. std::string和char *的相互转换 1.  将char *或char[]转换为std::string 可直接赋值 std::stri

QString与中文,QString与std::wstring的相互转换(使用fromStdWString和u8关键字)

Qt版本:5.5.1 Qt的QString功能丰富,对非英语语言的支持也不是问题,但支持得不够直接.例如,像 ? 1 QString str("死亡使者赛维"); 这样直接用带中文的字符串进行构造,那么用QMessageBox显示str时将出现乱码.如果使用fromLocal8Bit.fromLatin1这样的函数,又依赖本地计算机的显示语言,所以它们不是好方法. 显式地使用宽字符(wchar_t)或UTF-8才是好方法. ? 1 2 QString str0(QString::fro

C#1(.net和C#的关系、VS与.net的对应关系、VS2012常用的几种应用程序、C#定义一个类的方法、类页面内容的解释、定义Person的类、调用Person类的方法、命名规范、数值类型)

1..net和C#的关系 .net是一个开发平台,C#是应用在.net平台上的一种语言.   2.VS与.net的对应关系  3.VS2012常用的几种应用程序 第一种是Windows窗体应用程序,也即是我们常用的C/S端的应用软件: 第二种是控制台应用程序,主要是用来学习调试C#代码的(老师上课应用的模式): 第三种是空Web应用程序,建立空的网页模式,B/S模式: 第四种是Web 窗体应用程序,建立后会生成一些常用的网页组件和功能,例如JS.image等,也是B/S模式. 4.C#定义一个类