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

article/2025/7/29 17:28:02

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

将字符串转换为数字

方法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语言编程学习基地

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

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

编程学习书籍分享:

编程学习视频分享:


http://chatgpt.dhexx.cn/article/h2RxWf0M.shtml

相关文章

32程序员面试被拒,嫌弃太老,“大龄程序员”将何去何从

随着互联网的高速发展变革,大龄恐惧症越来越多地在技术圈被人讨论。很多程序员在工作5-10年以后,都会开始思考5年、10年甚至更久以后的自己,会是怎样一种生活工作状态,以及是否会被时代抛弃。 随着前段时间一位32的程序员被拒面试…

大龄程序员的未来在何方,该何去何从?

大龄程序员的界定 老早网上有人说,软件开发干不过30岁,后来又有人说干不过35岁,后来又有人说干不过40岁,后来又有人说干不过45岁……各种说法很多,这里我采取通俗的说法,认为过了30岁的程序员算是大龄程序…

大龄程序员书单

本职专业序列 24小时365天不间断服务: 服务器基础设施核心技术(运维基础) 云原生基础架构:构建和管理现代可扩展基础架构的模式及实践 企业迁云实践 生产微服务(推荐) 可伸缩服务架构:框架与中…

大龄程序员

要是写代码写到三十岁没升到管理怎么办啊? 我每天还在写代码,与人讨论技术实现细节,35 岁那年,我写的 Moco 拿了 Oracle 的 Duke 选择奖。 思维误区 我还没开始工作的时候,有人就在说:程序员能做到 30 岁…

35岁的程序员真的到头了么?国外的大龄程序员在干什么?

在Quora有个帖子: 我今年35岁了,是不是太老了,没法加入Google, Facebook, Microsoft 或者 Apple了? 下面的回复让人叹为观止,我摘录几个: 萨特南辛格 Google软件工程师 (2017–present) 不,…

大龄程序员的一次考研之旅

现在程序员的世界越来越卷,如果想拿到一个不错的offer,势必再聊完技术之外,HR也会关注你的学历,是否211?985 ?也许有人说,只要技术好就能拿到offer,云云。是的,技术能力确…

35岁大龄程序员职业转型规划

35岁大龄程序员职业转型规划 I. 引言 在当今快速发展的IT行业,程序员这个职业变得越来越重要。但是,对于35岁以上的程序员来说,面临的职业困境也越来越严峻。他们不仅面临着技术的迭代更新,而且还面临着市场的竞争和年轻程序员的…

大龄程序员找工作,为什么这么难?能力与年龄不匹配

背景 今年的金三银四快结束了,公司还在招人,可筛选的人才真是越来越少,于是在简历筛选时,将学历和年龄都适当的放松了。正因为如此,面试了不少大龄的程序员。 网络上一直有讨论大龄程序员找工作困境的话题&#xff0…

35岁以后的大龄程序员,正处于怎样一种状态?

前言 随着互联网的高速发展变革,大龄恐惧症越来越多地在技术圈被人讨论。很多程序员在工作5-10年以后,都会开始思考5年、10年甚至更久以后的自己,会是怎样一种生活工作状态,以及是否会被时代抛弃。 特别是全民创业的这几年&…

大龄程序员的出路究竟在何处?从369个过来人问答贴里,我们得到了答案

前几天,程序员节的到来让程序员这个职业又一次涌上热搜。 在这个特殊的节日,不少大牛也纷纷发表了自己的祝福,其中360创始人周鸿祎通过个人微博发布了相关视频其中关于程序员35岁就会被淘汰的话题引起了程序员们的热议。 在视频中&#xff…

我今年50岁了,还在干前端

程序员圈流传着这样一个段子:35岁之后,干前端去送外卖;搞后端去开滴滴;运维就去买保险…… 招人不要35岁的,裁人清理35岁的,不知道什么时候开始,35岁成了职业生涯的拐点,中年危机逐…

35岁以上的大龄程序员们,后来都干什么去了?

为什么软件开发行业看不见白发苍苍的程序员?大龄程序员都去哪里了?各个公司会辞退大龄程序员吗? 如果一位 50 多岁的程序员申请 20 多岁或 30 多岁的职位,有多少公司会雇用他们呢?关于这个问题,有很多流言传说,也有一些残酷的现实。 当…

知乎热议:35岁的中年危机,大龄程序员该何去何从?

知乎热议:什么样的程序员在35岁以后依然被公司抢着要? 程序员圈子里一直流传着一个魔咒:35 岁的中年危机。 他们说,35 岁程序员的精力和体力会无法避免地下降; 他们说,35 岁程序员的丰富经验没有年轻员工的创新活力吃香; 他们说&…

大龄程序员的8种出路

首先我会讲下年龄焦虑的本质,然后会谈谈大龄程序员的8种出路,最后会聊聊如何选择自己的方向。欢迎大家流言讨论。 年龄焦虑的本质是竞争力不足 所有和我聊年龄的程序员,聊到最后,都会确认这个事实:所谓年龄焦虑&#…

C#动态生成treeview目录树

思路: 获取全量树结构数据通过递归动态添加树子节点 动态生成目录树 TreeView 在这里我第一步就无需复述了!主要是返回如下格式数据 //调用生成目录树方法 DepartmentTree.initDeptTree(this.deptTv.Nodes, deptList); //初始化目录树数据 //初始化…

JAVA 生成文件目录树-json串

效果如图: 代码如下: 比较简陋但应该能用 package com.b.api;import com.alibaba.fastjson.JSON;import java.io.File; import java.util.ArrayList; import java.util.List;/*** 读取文件目录生成json串*/ public class GenerateJsonByFiles {public s…

centos查看目录树形结构

1.安装tree yum -y install tree2.命令查看树形结构 tree 目录

C#目录树控件

传统软件项目开发时,针对每个业务单据页面需要每控件一个一个的来设计,同时 需要在页面功能中对每个控件的属性进行判定处理,尤其是页面风格布 局样式需要 花去一大半的时间,并且后续要想修改也是非常麻烦繁琐,这样就导…

QT QFileSystemModel显示文件目录树

一、代码示例 // m_outDir,需要打开的目录路径 void MainDialog::showDirTree() {QFileSystemModel *pFileModel new QFileSystemModel();pFileModel ->setRootPath(m_outDir);// 绑定model,并设置索引ui->treeView->setModel(pFileModel);ui…

markdown目录树

直接在终端使用tree -L 2, 就可以打出深度为2 的目录树,作为代码插入到markdownj就可以了