string与int之间转换

2023-11-03

一、int 转换为 string

(1)使用to_string()函数

格式:string str = to_string(number);

需引入头文件:#include<string>

string to_string (int val);

string to_string (long val);

string to_string (long long val);

string to_string (unsigned val);

string to_string (unsigned long val);

string to_string (unsigned long long val);

string to_string (float val);

string to_string (double val);

string to_string (long double val);

举例:

#include<iostream>
#include<string>
using namespace std;

int main() {	
	
	int number = 1001;
	string str = to_string(number);
	cout << str << endl;			//输出:1001

	system("pause");
	return 0;
}

(2)采用sstream中定义的字符串流对象来实现

ostringstream os; //构造一个输出字符串流,流内容为空 
int i = 12; 
os << i; //向输出字符串流中输出int整数i的内容 
cout << os.str() << endl; //利用字符串流的str函数获取流中的内容 

二、string 转换为 int

(1)使用stoi()函数

(stoi == string to int(个人理解))
格式:int number = stoi(str.c_str());
需引入头文件:#include<string>

#include<iostream>
#include<string>
using namespace std;

int main() {	
	
	string str = "1001";
	int number = stoi(str.c_str());
	cout << number << endl;			//输出:1001

	system("pause");
	return 0;
}

(2)采用sstream中定义的字符串流对象来实现

istringstream is("12"); //构造输入字符串流,流的内容初始化为“12”的字符串 
int i; 
is >> i; //从is流中读入一个int整数存入i中

(3)隐式转换

例题:

一个字符串中只包含字符数字,’(’, ‘)’,
','几种字符,例如:“4,(2(3,1),(5,(3)))”表示4在第0层,2在第一层,315在第二层,3在第三层,输出结果为每个元素与所在层数的乘积和。

例子:“100,(1,(8),(1))" 输出:19,0100+11+28 + 21=19;

思路:统计层数和数字即可。
层数规律:遇左括号加1,遇右括号减1;
数字规律:每次遇到一个数字后,遍历后面所有的数字,直到遇到非数字。

int MultplySum(const string& s)
{
    int level = 0;
    int res = 0;
    for (int i = 0; i < s.size(); i++) {
        level += (s[i] == '(') ? 1 : (s[i] == ')' ? -1 : 0); // 遇左括号加1,遇右括号减1;
        int j = 0;
        int tmp = 0;
        while (s[i + j] >= '0' && s[i + j] <= '9') { // 次遇到一个数字后,遍历后面所有的数字,直到遇到非数字
            tmp = tmp * 10 + (s[i + j] - '0'); // 字符转换为数字
            j++
        }
        i += j;
        res += tmp * level;
    }
    return res;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

string与int之间转换 的相关文章

  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • SWI Prolog 转义引号

    我需要在序言中将 放在字符串周围 我从另一个程序获取输入 看起来我无法转义该程序中的 因此我必须在序言中添加 否则序言语句将不起作用 感谢您的帮助 为了讨论strings https stackoverflow com a 39922411
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • Web 中间件漏洞

    1 Tomcat Tomcat是Apache Jakarta软件组织的一个子项目 Tomcat是一个JSP Servlet容器 它是在SUN公司的JSWDK Java Server Web Development Kit 基础上发展起来的一
  • 2022全年度冰箱十大热门品牌销量榜单

    自2022年年初以来 各地纷纷部署支持包括冰箱在内的家电大宗消费政策措施 其中家电补贴政策是刺激家电消费的主旋律 宏观经济政策环境改善 利好冰箱行业的长期发展 根据鲸参谋数据统计 今年京东平台冰箱的年度累计销量达到1400多万件 同比增长1
  • python网络爬虫--项目实战(1)--500px图片爬取

    一 目标 爬取500px图片并保存 目标网址 https 500px com cn community discover 二 分析 2 1 网站分析 经过研究发现该网站没有点击下一页的按钮 然后往下拖动下拉条直到最后 会自动刷新出新的内容
  • 机器学习加强-随机森林

    一 概述 1 1 集成算法概述 集成学习 ensemble learning 是时下非常流行的机器学习算法 它本身不是一个单独的机器学习算法 而是通 过在数据上构建多个模型 集成所有模型的建模结果 目标 集成算法会考虑多个评估器的建模结果
  • 使用Aardvark(Total Phase)监测I2C链路

    使用Aardvark监测I2C链路 项目调试实例 1 Aardvark是Total phase公司推出的一款I2C SPI总线的调试工具 其功能包括 作为主 从设备调试I2C或SPI的相关功能 监测I2C总线上的数据 调试GPIO端口等 2
  • 请求分页内存管理的模拟 c++代码_C开发实战-内存管理

    作用域和变量 作用域就是作用的范围 当定义变量时不同作用域的变量位于不同的内存空间 变量按照不同的作用域可以分为局部变量和全局变量 而局部变量和全局变量都可以使用static修饰 static修饰的局部变量叫静态局部变量 static修饰的
  • Android Studio快捷键失效的问题及实用快捷键汇总

    Android Studio快捷键失效的问题及实用快捷键汇总 如题 如果你的Android studio快捷键失效了 并且检查了编辑器 没有动过配置 那么你的快捷键就是冲突了 例如QQ 输入法 音乐播放器等 一般情况下打开正在使用的软件的设
  • 关于对java项目中应用分层的简单理解

    一 基于springboot的逻辑分层结构 1 概念定义 大部分来自于 https blog csdn net weixin 39781363 article details 112028431 1 PO 和数据库表对应 Persistan
  • Windows环境使用VSCode 调试Linux环境C/C++代码

    在Win10中 配置VScode调试Linux环境下的C语言的代码 配置过程不太常用 特此记录下 1 源码文件 都一样 怎么写看个人爱好 2 VSCode安装这里也不做赘述 VSCode默认安装好是使用的英文 想要中文界面 可以在扩展中安装
  • QQ第三方网站授权登陆深入分析及cookie的高级运用

    前言 现如今越来越多的网站采用QQ或微信作为用户的一种快速登陆方式 随着互联网技术的发展 对自动化登陆的要求也随之产生 那么本文就由QQ出发 深入分析下QQ的授权流程 并如何实现自动化登陆 关键代码不分享 仅供参考学习 首先简单看看QQ第三
  • 三级数据库笔记(完整)

    三级数据库背诵资料 第一章 计算机基础知识 1 冯 诺依曼计算机以 存储程序 原理为基础 由运算器 存储器 控制器 输入设备和输出设备等五大部件组成 2 计算机指令系统 系列计算机 指令系统向下兼容 复杂指令系统计算机 CISC Compl
  • 【Android】Dagger和Hilt新手快速入门

    什么是Dagger和Hilt Dagger和Hilt都是安卓端的依赖注入框架 通过注解生成的方式 来取代手动创建对象的方式 来管理对象和其作用域 Dagger是Square公司出品的 而Hilt是由Google公司在Dagger的基础上优化
  • 第三篇:对话框窗口部件 QDialog

    对话框窗口部件 QDialog 对话框 Dialog 是计算机图形用户界面 GUI 中的一种常见窗口类型 通常用于与用户进行交互 获取信息 提供反馈或执行特定任务 对话框的主要目的是与用户进行短期的 有限的交互 以完成特定的操作或任务 然后
  • 你也可以成为数据分析师: 实战案例手把手教你如何在ChatGPT内使用Code Interpreter进行数据分析

    终于 OpenAI向所有Plus用户开放了Code Interpreter功能 这真是个令人振奋的好消息 我迫不及待地开始了测试 并且测试结果出奇地令人满意 借助Python代码的强大功能 Code Interpreter在数据分析领域展现
  • 交换机路由器作用以及工作原理详解

    1 1 PC机之间访问过程 A访问B过程 通过数据 mac地址 进行访问 1 A发送request请求包 该包携带源macA和目标macB 2 request请求包经过中继器进行 广播 所有的都可以收到该包 3 B收到A的请求包后 B给A回
  • DAO VC能成为股权众筹市场杀手级应用吗?Syndicate协议集体化VC怎么玩

    DAOVC本身不是新鲜事物 在DeFi领域 DAOVC有另外一个称呼 DeVC 去中心化VC 随着NFT市场的成熟以及GameFi被推向巅峰 DAO概念开始升温 YGG YieldGuildGames 是其中的知名代表 美国加密游说活动也助
  • OpenCV项目3-图像处理之信用卡数字识别

    OpenCV项目3 图像处理之信用卡数字识别 1 图片显示函数 2 模板读取 3 模板灰度化 二值化 4 模板轮廓计算 绘画 排序 5 模板取数字 尺寸resize 6 信用卡读取 7 信用卡尺寸resize 8 信用卡灰度化 卷积核 形态
  • CentOS 安装MariaDB的安装过程---离线安装

    CentOS 安装MariaDB的安装过程 离线安装 我使用在线安装的方式 怎么也成功不了 于是只能改成离线安装 然后发现离线安装其实也挺方便的 在这里和大家分享一下 1 首先要下载七个离线包 千万别下错了 http yum mariadb
  • Datax使用rdbmsreader支持clickhouse的读取

    参考链接 22条消息 使用datax的rdbmsreader实现读取clickhouse Sleten09的博客 CSDN博客 背景 想要把click house的数据源同步到HDFS 发现Datax没有clickhousereader组件
  • string与int之间转换

    一 int 转换为 string 1 使用to string 函数 格式 string str to string number 需引入头文件 include