C++深入学习笔记(17)—— string类的数值转换

废话不多说,直接上代码

int a = 123;
string s = to_string(a);		// 将整数a转换为字符表示形式,s = "123"
double d = stod(s);		// 将字符串转换为浮点数

注意: 要转换为数值的string中第一个非空白符必须是树脂中可能出现的字符。

string s = "PI = 3.14";

pi 的值为3.14
double pi = stod(s.substr(s.find_first_of("+-.0123456789")));

在stod调用中,我们调用了find_first_of来获得第一个可能是数值一部分的字符的位置。我们将s中从此位置开始的子串传递给stod。stod函数读取此参数处理其中的字符,直至遇到不可能是数值的一部分的字符。然后就将它找到的这一部分的字符串转换为对应的双精度浮点值。

string参数中第一个非空白符必须是符号(+或者-)或者数字。他可以是0X或者0x开头来表示的十六进制数。对于那些将字符串转换为浮点数的函数,string参数也可以以“.”开头,并可以包含e或者E来表示指数部分。
对于那些将字符串转换为整数的函数,根据基数不同,string参数可以包含字母字符,对应大于数字9的数。
注意: 如果string不能转换为一个数值,这些函数跑出一个invalid_argument异常。如果转换得到的数值无法使用任何类型来表示,则抛出一个out_of_range异常

to_string(val一组重载函数,返回数值val的string表示。val可以是任何的算数类型。
stoi(s, p, b)返回s的起始子串的数值,返回类型是int型
stol(s, p, b)返回s的起始子串的数值,返回类型是long int型
stoul(s, p, b)返回s的起始子串的数值,返回类型是unsigned long int型
stoll(s, p, b)返回s的起始子串的数值,返回类型是long long int型
stoull(s, p, b)返回s的起始子串的数值,返回类型是unsigned long long int型
stof(s, p)返回s的起始子串的数值,返回类型是float型
stod(s, p)返回s的起始子串的数值,返回类型是double型
stold(s, p)返回s的起始子串的数值,返回类型是long double型
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值