1.stoi()、stof()、stod() 实现字符串转 int、float、double。

  • stoi -> string to integer
  • stof -> string to float
  • stod -> string to double

函数原型:

int stoi (const string&  str, size_t* idx = 0, int base = 10); //ids: 指明从字符串何处开始转,base: 转换成几进制数
float stof (const string&  str, size_t* idx = 0); //ids: 指明从字符串何处开始转(默认从字符串首字母开始)
double stod (const string&  str, size_t* idx = 0); //ids: 指明从字符串何处开始转(默认从字符串首字母开始)
 #include<iostream>
using namespace std; int main() {
string s = "3.14"; //数字字符串
int i = stoi(s); //字符串转整型
float f = stof(s); //字符串转浮点型
double d = stod(s); //字符串转双精度浮点型
cout << i << " " << f << " " << d << endl;
return ;
}

notes: 字符串中如果含有非数字的字符,则会抛出异常。如果非数字字符在数字字符之后,会自动截取前面的数字字符!

 #include<iostream>
using namespace std; int main() {
string s = "abc3.14"; //非法数字字符串
int i = stoi(s); //字符串转整型
float f = stof(s); //字符串转浮点型
double d = stod(s); //字符串转双精度浮点型
cout << i << " " << f << " " << d << endl;
return ;
}

Error: terminating with uncaught exception of type std::invalid_argument: stoi: no conversion

#include<iostream>
using namespace std; int main() {
string s = "3.14abd#"; //数字字符串,只会截取3.14,abc会抛弃掉!
int i = stoi(s); //字符串转整型
float f = stof(s); //字符串转浮点型
double d = stod(s); //字符串转双精度浮点型
cout << i << " " << f << " " << d << endl;
return ;
}
Output:
3.14 3.14

2. 数字转字符串 -- to_string() and stringstream

方法一:通过 to_string(value) 方法

 int main() {
double PI = 3.1415926;
string p = "PI is " + to_string(PI);
cout << p << endl;
return ;
}

方法二:通过 stringstream 字符流操作

 #include<iostream>
#include <sstream>
using namespace std; int main() {
double PI = 3.1415926;
stringstream ss; // 声明一个字符流对象
string p;
ss << PI; // 将double型数据输入流中
ss >> p; // 将流中数据输出到字符串中
cout << "PI is " << p << endl;
return ;
}

字符串转数字 (With C++)的更多相关文章

  1. 转:IE兼容模式下 SCRIPT1028: 缺少标识符、字符串或数字

    IE兼容模式下 SCRIPT1028: 缺少标识符.字符串或数字例如下面一段代码 var a = {    x: 1,    y: 2,};alert(a.x);如果在IE的兼容性视图(IE7文档模式 ...

  2. 剑指Offer面试题:35.将字符串转换为数字

    一.题目:将字符串转换为数字 题目:写一个函数StrToInt,实现把字符串转换成整数这个功能.当然,不能使用atoi或者其他类似的库函数. 二.代码实现 (1)考虑输入的字符串是否是NULL.空字符 ...

  3. Oracle 把秒转成时分秒格式(hh24:mm:ss);检测字符串是否是数字;字符串转换为数字

    不说废话,贴代码: CREATE OR REPLACE FUNCTION to_time(sec IN NUMBER) RETURN VARCHAR2 IS /*把秒转成时分秒格式 auth lzpo ...

  4. js 字符串转换数字

    方法主要有三种转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对 ...

  5. php 字符串和数字比较一些问题

    本文章来给大家介绍关于php 字符串和数字比较一些问题,因为数字与字符在php中是不同的数据类型,所以在比较时可能会有很多的问题. ,1,2等等,其中0标示成功,其他表示不同的错误代码.程序通过 if ...

  6. javascript 在ie8中报“缺少标识符、字符串或数字“问题再现:

    开发和测试使用Chrome浏览器比较多,客户反馈某个页面打不开,自己用Chrome打开一切正常,用ie8打开,果然页面展现卡在那儿了,并且报了"缺少标识符.字符串或数字".查看是在 ...

  7. js 获取小数点位数方法及 字符串与数字之间相互转换方法

    1.获取小数点位数方法 a. 使用 js 中 subsrting,indexOf,parseFloat三个函数,代码如下: var s = "22.127456" ;//s 为 字 ...

  8. SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)

    在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名)   例如:select convert(int,'3')2. cast(字段名 as i ...

  9. C语言字符串与数字相互转换

    在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串.字符串是以“\0”作为结束符.C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数. ● 字符串输出函数puts. ● ...

  10. 基本数据类型-集合(set)_上周内容回顾(字符串_数字_列表_元组_字典_集合)

    上周内容回顾 1.字符串 2.数字 除了布尔类型外,int.long.float和complex都可以使用的运算为:加.减.乘.除.整除.幂运算和取余 3.列表和元组 列表的内容可变,可以包含任意对象 ...

随机推荐

  1. javaweb-codereview 学习记录-1

    Servlet是在Java Web容器上运行的小程序,通常我们用Servlet来处理一些较为复杂的服务器端的业务逻辑.值得注意的是在Servlet3.0之后(Tomcat7+)可以使用注解方式配置Se ...

  2. [题解][Codeforces]Good Bye 2019 简要题解

    构造题好评,虽然这把崩了 原题解 A 题意 二人游戏,一个人有 \(k_1\) 张牌,另一个人 \(k_2\) 张,满足 \(2\le k_1+k_2=n\le 100\),每张牌上有一个数,保证所有 ...

  3. set集合迭代

    1.迭代遍历 Set<String> set = new HashSet<String>(); Iterator<String> it = set.iterator ...

  4. 看透Spring MVC:源代码分析与实践 (Web开发技术丛书)

    第一篇 网站基础知识 第1章 网站架构及其演变过程2 1.1 软件的三大类型2 1.2 基础的结构并不简单3 1.3 架构演变的起点5 1.4 海量数据的解决方案5 1.4.1 缓存和页面静态化5 1 ...

  5. python实例:从excel读取股票代码,爬取股票信息写到代码后面的单元格中

    关键词:爬虫.python.request.接口.excel处理 思路: 1.首先准备好excel文档,把股票代码事先编辑进去. 2.脚本读取文档,依次读出股票代码到指定站点发起请求获取股票信息 3. ...

  6. IIS 32位/64位 全局模式切换

    IIS7以上可以对单个应用程序池进行设置. IIS6需要用命令. 一.32位模式1.cscript %systemdrive%\inetpub\adminscripts\adsutil.vbs set ...

  7. AttributeError: module 'cv2' has no attribute 'SIFT'解决总结

    AttributeError: module 'cv2' has no attribute 'SIFT' 遇到该问题时,网友多是建议补个包,即pip install opencv-contrib-py ...

  8. DataTable 相关

    1.对表的初始化 //创建表 DataTable table = new DataTable(); //添加列 table.Columns.Add("ID", typeof(Int ...

  9. RSYNC 同步工具

    Rsync 数据同步工具 一.Rsync简介 1.检测一下你的机器上是否已经安装  --->可以通过yum安装  或者  源码 Server  192.168.201.151 Client    ...

  10. python学习--curl

    PyCurl是一个C语言写的libcurl的python绑定库.libcurl 是一个自由的,并且容易使用的用在客户端的 URL 传输库.它的功能很强大,PycURL 是一个非常快速(参考多并发操作) ...