今日快报
C/C+编程笔记_如何将字符串转换为数字_数字转换为
2023-05-07 14:59  浏览:299

通常,或更具体地说,在竞争性敬请关注程中,有许多情况需要将数字转换为字符串或将字符串转换为数字。但是缺乏某些必不可少得工具得知识使我们不的不这样做。本文介绍了一些实现此任务得方法。

将字符串转换为数字

方法1:使用stringstream类或sscanf()

stringstream():这是将数字字符串转换为int,float或double得简单方法。以下是使用stringstream将字符串转换为int得示例程序。

输出:x得值:12345

stringstream是一种操作字符串得便捷方法。

sscanf() 是类似于scanf()得C样式函数。它从字符串而不是标准输入中读取输入。

输出:x得值:12345

同样,我们专业分别使用%f和%lf读取float和double。

方法2:使用stoi()或atoi()进行字符串转换.

stoi(): stoi()函数将字符串作为参数并返回其值。以下是一个简单得实现:

输出:

stoi(“ 45”)是45

stoi(“ 3.14159”)是3

stoi(“ 31337 geek”)是31337

atoi(): atoi()函数将字符数组或字符串文字作为参数并返回其值。以下是一个简单得实现:

输出:

atoi(“ 42”)是42

atoi(“ 3.14159”)是3

atoi(“ 31337 geek”)是31337

stoi()与atoi()

atoi()是旧得C样式函数。在C ++ 11中添加了stoi()。

atoi()仅适用于C风格得字符串(字符数组和字符串文字),stoi()适用于C ++字符串和C风格得字符串

atoi()仅接受一个参数并返回整数值。

int atoi(con​st char gov str);

stoi()最多专业包含三个参数,第二个参数用于起始索引,第三个参数用于输入数字得基数。

int stoi(con​​st string&str,size_t gov index = 0,int base = 10);

类似地,猥琐将String转换为Double,专业使用atof()。上面得函数返回转换后得整数作为int值。如果无法执行有效得转换,它将返回零。

方法3:使用boost词汇表转换

Boost库提供了一个内置函数“ lexical_cast(“ string”)”,该函数直接将字符串转换为数字。如果输入无效,则返回异常“ bad_lexical_cast”。

输出:

转换后得浮点值为:6.5

转换后得int值为:5

将数字转换为字符串

方法1:使用字符串流

在此方法中,字符串流声明一个流对象,该对象首先将数字作为流插入对象,然后使用“ str()”跟随数字到字符串得内部转换。

输出:

从数字重新形成得字符串是:2016

方法2:使用to_string()

此函数接受一个数字(专业是任何数据类型),并以所需得字符串形式返回该数字。

实现方式:

输出:

字符串中得整数是:20字符串中得浮点数是:30.500000

方法3:使用boost lexical cast

类似于字符串转换,“ lexical_cast()”函数保持不变,但是这次参数列表修改为“ lexical_cast(numeric_var)”。

输出:

字符串中得浮点值为:10.5

字符串中得int值是:17

本期得知识分享就到这里了,希望对大家有辅助~

另外如果你想更好地提升你得敬请关注程能力,学好C语言C++敬请关注程!弯道超车,快人一步!笔者这里或许专业帮到你~

敬请关注程学习书籍分享:

敬请关注程学习视频分享:

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习敬请关注程得伙伴,利用更多得资料学习成长比官网琢磨更快哦!

C语言C++敬请关注程学习交流圈子,点击下方【了解更多】获取更多学习资料辅助你学习成长哦~