C/C++编程笔记:如何将字符串转换为数字,数字转换为字符串? |
您所在的位置:网站首页 › 数字字母转换任务EPRIME › C/C++编程笔记:如何将字符串转换为数字,数字转换为字符串? |
通常,或更具体地说,在竞争性编程中,有许多情况需要将数字转换为字符串或将字符串转换为数字。但是缺乏某些必不可少的工具的知识使我们不得不这样做。本文介绍了一些实现此任务的方法。 将字符串转换为数字方法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(const char * str); stoi()最多可以包含三个参数,第二个参数用于起始索引,第三个参数用于输入数字的基数。 int stoi(const string&str,size_t * 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++编程学习交流圈子,Q群1090842465【点击进入】微信公众号:C语言编程学习基地 分享(源码、项目实战视频、项目笔记,基础入门教程) 欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦! 编程学习书籍分享: 编程学习视频分享: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |