一、stringstream介绍

stringstream是 C++ 提供的一个字符串流(stream),,必须包含其头文件:

#include <sstream>

< sstream > 库定义了三种类:

  • 流的输入:istringstream
  • 流的输出:ostringstream
  • 流的输入输出:stringstream

因为字符串要频繁的涉及到输入输出,故一般使用stringstream。

通过插入器(<<)和析取器(>>)这两个运算符可以直接对stringstream上的数据输入输出

二、转化模板

因为经常会使用整型变量与字符串变量的转化,所以使用stringstream是很方便的。

stringstream  ss; //先定义一个stringstream变量
int a; //准备好两个要转换的变量
string s = "56"; //一个是int,一个是string
ss << s; //将字符串s的内容转存入字符串流ss
ss >> a; //将字符串流ss的内容存入整型a内,完成转化。

三、例题

A.蓝桥杯第九届真题:缩位求和

题目链接

题目描述
在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确。
比如:248 * 15 = 3720
把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得
2 + 4 + 8 = 14 ==> 1 + 4 = 5;
1 + 5 = 6
5 * 6
而结果逐位求和为 3
5 * 6 的结果逐位求和与3符合,说明正确的可能性很大!!(不能排除错误)

请你写一个计算机程序,对给定的字符串逐位求和:

输入
输入为一个由数字组成的串,表示n位数(n<1000);

输出
输出为一位数,表示反复逐位求和的结果。

样例输入
35379

样例输出
9

解:循环将字符串各位数字相加,相加结果存储在int型变量中,用stringstream字符串流转换为string,又可以继续下一次循环。当字符串长度只剩1位时,结束循环。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string s;
stringstream ss;
void solve(string &s) {ll sum = 0;for (int i = 0; i < s.length(); i++) {sum += s[i]-'0';}ss.clear();ss << sum;ss >> s;//cout << sum << " " << s << endl;
}
int main() {cin >> s;while (s.size() > 1) {solve(s);}cout << s << endl;
}

C++ 字符串流stringstream(附蓝桥杯2018年第九届真题缩位求和题解)相关推荐

  1. [蓝桥杯][2018年第九届真题]小朋友崇拜圈、耐摔指数、堆的计数、缩位求和、约瑟夫环

    个人题解链接,蓝桥杯历届试题,正在更新中~ 文章目录 个人题解链接,蓝桥杯历届试题,正在更新中~ 小朋友崇拜圈 耐摔指数 堆的计数 缩位求和 约瑟夫环 小朋友崇拜圈 题目描述 班里N个小朋友,每个人都 ...

  2. [蓝桥杯][2018年第九届真题]整理玩具(树状数组)

    题目描述 小明有一套玩具,一共包含NxM个部件.这些部件摆放在一个包含NxM个小格子的玩具盒中,每个小格子中恰好摆放一个部件. 每一个部件上标记有一个0~9的整数,有可能有多个部件标记相同的整数. 小 ...

  3. [蓝桥杯][2018年第九届真题]调手表(BFS)

    题目描述 小明买了块高端大气上档次的电子手表,他正准备调时间呢. 在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟. 大家都知道,手表只有一个按钮可以把当前的数加一.在 ...

  4. [蓝桥杯][2018年第九届真题]迷宫与陷阱(三维数组标记BFS)

    题目描述 小明在玩一款迷宫游戏,在游戏中他要控制自己的角色离开一间由NxN个格子组成的2D迷宫. 小明的起始位置在左上角,他需要到达右下角的格子才能离开迷宫. 每一步,他可以移动到上下左右相邻的格子中 ...

  5. [蓝桥杯][2018年第九届真题]版本分支(离线LCA模板)

    题目描述 小明负责维护公司一个奇怪的项目.这个项目的代码一直在不断分支(branch)但是从未发生过合并(merge). 现在这个项目的代码一共有N个版本,编号1~N,其中1号版本是最初的版本. 除了 ...

  6. [蓝桥杯][2018年第九届真题]日志统计(树状数组)

    题目描述 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞". ...

  7. [蓝桥杯][2018年第九届真题]倍数问题(贪心+思维)

    题目描述 众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数.但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼.现在小葱给了你 n 个数,希望你从这 n 个数中找到三个数,使得 ...

  8. [蓝桥杯][2018年第九届真题]小朋友崇拜圈(简单图论)

    题目描述 班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己). 在一个游戏中,需要小朋友坐一个圈, 每个小朋友都有自己最崇拜的小朋友在他的右手边. 求满足条件的圈最大多少人? 小朋友编号 ...

  9. [蓝桥杯][2018年第九届真题]全球变暖(DFS)

    题目描述 你有一张某海域NxN像素的照片,"."表示海洋."#"表示陆地,如下所示: - .##- .##- -##. -####. -###. - 其中&qu ...

最新文章

  1. SQL中object_id函数的用法
  2. C4C里产品主数据和销售组织数据维护的相互作用和相互影响
  3. AD20学习笔记2---原理图绘制及编译检查
  4. PAT-乙级-1062 最简分数
  5. slack 使用说明_如何使用Node.js为Slack构建Meetupbot
  6. 图解+笔记-4.2.1 字符串获取操作、字符串合并和重复操作
  7. 算法学习(三)堆排序
  8. boot客户管理系统源码_开源 SpringBoot+vueJs 前后端管理系统模版
  9. 易软门诊管理软件php,易软门诊管理系统最新下载
  10. VB 连接加密码的ACCESS数据库*.mdb,*.accdb
  11. 13、TORCH.OPTIM
  12. 04HTML5学习之网页设计
  13. Initializationfailedforhttps://start.spring.ioPleasecheckURLnetwor的解决方法本人亲测
  14. Android camera2对焦设置
  15. corsswalk的研究和使用(一)
  16. 记录对接移动Mas平台发送短信踩的坑
  17. IDEA开发工具调试技巧(极大提升开发效率)
  18. flash脚本语言详细解读
  19. php 心电图,用canvas画心电图的示例代码
  20. 全球及中国冲压空气涡轮(RAT)行业发展研究及未来前景预测报告2022-2028年版

热门文章

  1. 【BZOJ】【3295】【CQOI2011】动态逆序对
  2. HTML5,CSS3,JS绘制饼图
  3. 大三,一点回忆,一点难忘
  4. opengl 关于glewGetContext没有定义
  5. Asp深度揭密(下)
  6. 探索MicroPython(三)--基础操作示例
  7. OpenCV3学习(11.2)LK光流法原理及opencv实现
  8. 7-24 悄悄关注 (10 分)
  9. 远程计算机用户名,远程计算机服务
  10. PTA c语言 数组元素循环右移问题