C/C++编程笔记:如何将字符串转换为数字,数字转换为字符串?

2023-11-05

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

将字符串转换为数字

方法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 * str);

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

int stoi(con​​st 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语言编程学习基地

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

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习书籍分享:

编程学习视频分享:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++编程笔记:如何将字符串转换为数字,数字转换为字符串? 的相关文章

随机推荐

  • 登录验证码由servlet实现

    简单的登录验证码由servlet实现 创建包util 类ImageServlet package util import javax imageio ImageIO import javax servlet ServletException
  • 程序员如何优雅地解决线上问题?

    身为一个程序员 遇到线上问题那都是家常便饭的事儿 如果你在深夜看到一群同事围在一起 他们是在共同探讨什么哲学问题么 非也 他们一定是遇到了线上BUG 线上问题只要影响到了核心业务流程那便是事故 所以一旦事故发生 无论你在约会 还是周末打游戏
  • 练习- Java类和对象之构造方法与对象创建之计算数学中的分数值

    任务描述 本关任务 跟据键盘输入的分子和分母求出该分数的值 其中第一次输入的值为分子的值 第二次输入的值为分母的值 两次的值均为 int 型 任务 跟据键盘输入的分子和分母求出该分数的值 其中第一次输入的值为分子的值 第二次输入的值为分母的
  • C++ map (不影响map结构) 按照 插入顺序排序 (**)

    C map 不影响map结构 按照 插入顺序排序 C 实现的支持插入顺序的高效map 第三方的库 要点 1 Qt 设计的初期 只是一个自成系统的图形框架 它的功能只是为了满足设计 ui之用 虽然后来不断地扩大了使用的范围 使其有向 全功能的
  • centos7 x11vnc配置

    shishi将文件夹放入 opt目录下面 安装x11vnc cd opt x11vnc1 rpm ivh rpm 配置x11vnc cp opt x11vnc1 x11vnc service etc systemd system 文件内容如
  • Fiddler手机抓包

    本文转载自 Fiddler手机抓包 机智的老猫咪 博客园 Fiddler是一款安装在PC上的抓包软件 它不仅可以对pc上的程序进行抓包 也可以对手机上的程序进行抓包 下面说下抓取手机程序的步骤 一 PC端设置 1 PC上Fiddler抓取H
  • 【放苹果】m个苹果放到n个盘子中

    m个相同的苹果 放在n个相同的盘子中 由于相同 使用排列组合的方法不好处理 这里选用递归调用的方式解决问题 8个苹果 放在3个盘子里 8个苹果 放在2个盘子 5个苹果 放在2个盘子 每盘已经放入1个苹果 2个苹果 放在2个盘子里 每盘已经放
  • 设置linux防火墙的的脚本,Linux开启防火墙并设置策略脚本

    bash bash 现有规则全部注销 iptables P INPUT ACCEPT iptables F 全部进入端口禁止 iptables P INPUT DROP 开启ping和snmp iptables A INPUT i lo j
  • uniapp封装promise接口

    uniapp封装promise接口 uni app题拱了uni requet 方法 发起网络请求 首先在根目录里创建一个request文件夹 在里面创建request js文件 在文件里编写发起网络请求的代码 在全局main js中配置 在
  • vue项目使用vue-quill-editor,光标位置控制(已解决)

    查了网上很多资料使用 都没有解决 故记录在此 全局引入 import Vue from vue import VueQuillEditor from vue quill editor require styles import quill
  • [重点]call、apply和bind的区别以及源码解析

    前言 在前端面试中 最常见的面试题 this的指向问题 如何改变this指向 call apply和bind的区别以及源码解析 如果面试官问到this的指向问题 那么你去引导面试官 让他问你如何改变this指向 call apply和bin
  • Wazuh检测反弹shell

    Wazuh通过在agent服务器上执行指定的命令 并收集命令结果 可以在一定程度上发现反弹shell的入侵行为 目前有2中常见的检测方法 一种是通过netstat输出网络连接中的shell进程来识别 另一种是通过ps输出进程信息中的反弹sh
  • 光纤中的多种光学模式芯径_「涨知识」你想知道的光纤常识都在这里了,看不看随你...

    光纤已经成为远距离有线信号传输的主要手段 安装 维护光纤也是弱电人的基本功 光纤中涉及的理论知识 组件和铺设要点都很多 我们在这里作了一些梳理 三种光 不是所有的光都能用于光纤中信号传播 光线中主要使用三种波长的光 850 nm 1300
  • Zotero文献导入到Endnote

    1 2 导入的时候 请选择
  • STM32 DAC + DMA + TIM 输出正弦波,三角波,方波信号

    硬件平台 STM32F4 库类型 标准库 参考 二代示波器教程 第12章 示波器设计 DAC信号发生器的实现 DAC框图如下 通过TIM触发DAC转换 转换完成后通过DMA输出 DMA通道框图 DAC输出阻抗的问题 DAC集成了2个输出缓存
  • matlab练习程序(弧形、圆柱投影的复原)

    前一段介绍了从矩形图像到圆柱的正向投影 看这里和这里 今天介绍如何从已经投影的图像反映射到原图像上 本来此种变换一定是需要数学公式的 不过这里只是用了一个很简单的方式来完成反映射 具体就把每一列有像素数据的长度拉伸到原图像的高就行了 原图像
  • html网页超链接

    HTML网页超链接可以通过a标签来添加超链接 其语法是 a href target self title a 它的两个属性值分别是href用来设置网页目标地址 target是用来设置打开超链接的方式 a href 网址 链接地址 targe
  • 字体子集化fontmin应用

    const fm require fontmin const f 字体名称 ttf const fontmin new fm fontmin src f use fm glyph text 天地玄黄 宇宙洪荒 use fm ttf2svg
  • 二、图像二值化方法(python)---阈值全局固定、大津法

    文章目录 阈值全局固定 利用python实现阈值全局固定时的二值化 效果图 大津法OTSU 利用Python实现大津法 效果图如下 图像二值化也叫做图像阈值化处理 通过设定某个阈值为门限 把多灰度级的图像转化为仅仅有两个极端的灰度级 0和2
  • C/C++编程笔记:如何将字符串转换为数字,数字转换为字符串?

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