C++ 字符串和数字之间的相互转换
能完成字符串和数字转换的方法多种多样:
1.使用string自带函数
数字转字符串:to_string()
字符串转数字:stoi()、stol()、stof()、stod()等等
例:
int i = 42;
string s = to_string(i);
double d = stod(s);
字符串转数字的各个函数还可以选择从字符串的哪个位置开始转换,转换成整型量还可以选择不同的进制,具体见C++primer 328页。
2.使用stringstream
首先要包含sstream头文件,这个类继承自iostream,可以对string进行读写数据。
通过stringstream可以直接完成字符串和数字的互相转换。
例:
//数字转字符串
int num = 12;
string s;
stringstream strs;
strs << num;
strs >> s; //s = “12”
//字符串转数字
string s = "123";
int num;
stringstream strs;
strs << s;
strs >> num; //num = 123
这里的字符串类型不仅可以是string,也可以是char[ ]。当然,C++推荐我们能用string、vector等容器就不要用数组;能用迭代器就不要用普通指针。
3.使用sprintf、sscanf
需要include<stdio.h>
// 数字转字符串
sprintf(str, “%d”, num);
// 字符串转数字
sscanf(str, “%d”, &rsl);
通过字符串和数字之间的相互转换,我们可以更灵活的处理数据、解决问题,比如下面这个例题:
求1-n范围内包含数字 2、0、1、9 的数字的个数,并计算它们的和。
#include <string>
#include <iostream> using namespace std;int n, num = 0, sum = 0;
string s;
string numbers("2019");
int main()
{cin >> n;for (int i = 1; i <= n; ++i){// 将数字转化为strings = to_string(i);// find_first_of()可以查找numbers中任意一个字符在s中第一次出现的位置if (s.find_first_of(numbers) != string::npos) {sum += i;++num;}}cout << "1-" << n << "范围内包含2、0、1、9的数字共有" << num << "个," << "其和为:" << sum << endl;return 0;
}
C++ 字符串和数字之间的相互转换相关推荐
- java中的字符,字符串,数字之间的转换(亲测)
string 和int之间的转换 string转换成int :Integer.valueOf("12") int转换成string : String.valueOf(12) ch ...
- java中的字符,字符串,数字之间的转换
java中的字符,字符串,数字之间的转换 string 和int之间的转换 string转换成int :Integer.valueOf(" ") int转换成string : St ...
- Python 字符串与数字之间的转换
目录 什么是类型转换,为什么做类型转换 字符串与数字之间转换的要求 字符串与数字之间的转换函数 什么是类型转换 为何做类型转换 将自身数据类型变成新的数据类型,并拥有新的数据类型的所有功能的过程即为类 ...
- c语言atoi可以转化小数,C语言实现atoi和itoa(字符串与数字之间的转化)
C语言实现atoi和itoa(字符串与数字之间的转化) #include #include #include #include #include #include //字符转数字("123& ...
- Python数字、字符串、数组之间的相互转换
在平时刷题中,经常需要在数字.字符串.数组之间做转换,苦于网上没有全面的总结,遂自己稍微总结一下. 文章目录 Python数字.字符串.数组相互转换 Python数组转数字 Python数字转数组 P ...
- C/C++中字符串与数字之间的转换
主要有两种方式:C 中能够使用 sprintf 将数字转为字符数组,sscanf 将字符数组转为数字:而在 C++ 中不仅能够使用 C 中的方法,还能够使用 stringstream 实现字符串与数字 ...
- Python3 字符串与hex之间的相互转换
在字符串转换上,python2和python3是不同的,在查看一些python2的脚本时候,总是遇到字符串与hex之间之间的转换出现问题,记录一下解决方法. 1. 在Python2.7.x上,hex字 ...
- java 转byte字符串,Java 字符串与byte之间的相互转换
写在前面 上次在简书上第一次发表文章多了30位朋友关注和收到80多个喜欢让我受宠若惊.我当时打算以后要多写一些有价值的文章,才对得起关注我的朋友.然而,爱游戏的我在刚不久前把四公主接回来了~这一个多月 ...
- js字符串和数字之间的转换
数字转字符串 var x = 1234567; var s = x.toString(); var len = s.length; console.log(x) console.log(s) cons ...
最新文章
- [转]如何借助 TLS/SSL 确保套接字连接的安全(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用)...
- JZOJ 5484. 【清华集训2017模拟11.26】快乐树
- #化鲲为鹏,我有话说# 鲲鹏弹性云服务器配置 Tomcat
- 高并发解决方案--负载均衡
- #pragma预处理指令详解
- R语言ETL工程:分组(group_by)
- swift开发网络篇—NSURLConnection基本使用
- 12c 新特性-统一审计(Unified Auditing)
- Spring Cloud Alibaba教程:使用Nacos作为配置中心
- 【Ubuntu touch for xiaomi 8】小米8第三方ROM
- 云平台运维的一些心得
- 红宝书背诵笔记 — 简单基础词语,Java视频教程百度网盘
- 【转载】磁盘空间引起ES集群shard unassigned的处理过程
- 冯诺依曼结构与哈佛结构的区别
- SVN提交成功,但是版本库里面的内容没有更新--解决方案
- python 数据分析 14天_python数据分析简介
- 表计算函数(Tableau)
- 在真实设备上进行Android调试
- 计算机的投资:量化投资
- 关于工信部要求品牌电脑强制预装“-花季护航”软件
热门文章
- 如何启动 与配置tomcat 服务端,修改startup.bat乱码现象
- RocketMQ 集群平滑运维
- python关于通讯录模型_python写一个通讯录 - wtwexile - 博客园
- ubuntu libiconv库 arm交叉编译
- jsp的实质是什么?
- 【企业架构设计实战】业务架构设计
- 单片微型计算机原理与应用第三版课后答案,单片微型计算机原理及应用 - 课后习题答案 - 山东理工...
- 投资品讲解及国债逆回购
- 象棋参谋 v1.1 免费版 官网
- android中PreferenceScreen类的用法