字符串转数字 (With C++)
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++)的更多相关文章
- 转:IE兼容模式下 SCRIPT1028: 缺少标识符、字符串或数字
IE兼容模式下 SCRIPT1028: 缺少标识符.字符串或数字例如下面一段代码 var a = { x: 1, y: 2,};alert(a.x);如果在IE的兼容性视图(IE7文档模式 ...
- 剑指Offer面试题:35.将字符串转换为数字
一.题目:将字符串转换为数字 题目:写一个函数StrToInt,实现把字符串转换成整数这个功能.当然,不能使用atoi或者其他类似的库函数. 二.代码实现 (1)考虑输入的字符串是否是NULL.空字符 ...
- Oracle 把秒转成时分秒格式(hh24:mm:ss);检测字符串是否是数字;字符串转换为数字
不说废话,贴代码: CREATE OR REPLACE FUNCTION to_time(sec IN NUMBER) RETURN VARCHAR2 IS /*把秒转成时分秒格式 auth lzpo ...
- js 字符串转换数字
方法主要有三种转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对 ...
- php 字符串和数字比较一些问题
本文章来给大家介绍关于php 字符串和数字比较一些问题,因为数字与字符在php中是不同的数据类型,所以在比较时可能会有很多的问题. ,1,2等等,其中0标示成功,其他表示不同的错误代码.程序通过 if ...
- javascript 在ie8中报“缺少标识符、字符串或数字“问题再现:
开发和测试使用Chrome浏览器比较多,客户反馈某个页面打不开,自己用Chrome打开一切正常,用ie8打开,果然页面展现卡在那儿了,并且报了"缺少标识符.字符串或数字".查看是在 ...
- js 获取小数点位数方法及 字符串与数字之间相互转换方法
1.获取小数点位数方法 a. 使用 js 中 subsrting,indexOf,parseFloat三个函数,代码如下: var s = "22.127456" ;//s 为 字 ...
- SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)
在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名) 例如:select convert(int,'3')2. cast(字段名 as i ...
- C语言字符串与数字相互转换
在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串.字符串是以“\0”作为结束符.C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数. ● 字符串输出函数puts. ● ...
- 基本数据类型-集合(set)_上周内容回顾(字符串_数字_列表_元组_字典_集合)
上周内容回顾 1.字符串 2.数字 除了布尔类型外,int.long.float和complex都可以使用的运算为:加.减.乘.除.整除.幂运算和取余 3.列表和元组 列表的内容可变,可以包含任意对象 ...
随机推荐
- V模型
V模型是Kevin Forsberg & Harold Mooz在1978年提出的,V模型强调测试在系统工程各个阶段中的作用,并将系统分解和系统集成的过程通过测试彼此关联.V模型从整体上看起来 ...
- [bzoj4567] [loj#2012] [SCOI2016] 背单词
Description \(Lweb\) 面对如山的英语单词,陷入了深深的沉思,「我怎么样才能快点学完,然后去玩三国杀呢?」.这时候睿智的凤老师从远处飘来,他送给了 \(Lweb\) 一本计划册和一大 ...
- [bzoj5507] [洛谷P5305] [gzoi2019]旧词
Descriptioin 浮生有梦三千场 穷尽千里诗酒荒 徒把理想倾倒 不如早还乡 温一壶风尘的酒 独饮往事迢迢 举杯轻思量 泪如潮青丝留他方 --乌糟兽/愚青<旧词> 你已经解决了五个问 ...
- nginx default setting
# You may add here your# server {# ...# }# statements for each of your virtual hosts to this file ...
- POJ Expanding Rods
点击打开题目 题目大意 给定L,n,C,L为红色线段,L(1+n*C)为绿色弧,求两者中点的距离 二分圆心角度数,接下来就是几何的能力了 根据正弦定理,可得: Lsinθ=rsin(90°−θ) 则弧 ...
- c#数字图像处理(十二)图像的腐蚀与膨胀
背景知识 腐蚀与膨胀基本原理:就是用一个特定的结构元素来与待处理图像按像素做逻辑操作:可以理解成拿一个带孔的网格板(结构元素矩阵中元素为1的为孔)盖住图像的某一部分,然后按照各种不同的观察方式来确定操 ...
- itext5和itext7操作pdf平铺和图层叠加(tiling, and N-upping)
区别 itext5 生成pdf版本:1.4(Acrobat5.x) itext7 生成pdf版本:1.7(Acrobat8.x) iText7生成的pdf文件大, itext7 Java库更加系统和完 ...
- DirectX11 With Windows SDK--29 计算着色器:内存模型、线程同步;实现顺序无关透明度(OIT)
前言 由于透明混合在不同的绘制顺序下结果会不同,这就要求绘制前要对物体进行排序,然后再从后往前渲染.但即便是仅渲染一个物体(如上一章的水波),也会出现透明绘制顺序不对的情况,普通的绘制是无法避免的.如 ...
- 使用Intellij编写Spring Hello World
编写基于Intellij2016.3与Java SDK1.8 下载Spring最新jar包: http://repo.spring.io/release/org/springframework/spr ...
- 全局对象的构造函数会在main函数之前执行?
#include <iostream> using namespace std; class CTest { public: CTest() { cout << "构 ...