c++ strstream
来源:互联网 发布:php网站文件管理 编辑:程序博客网 时间:2024/06/05 14:41
终于刷完leetcode的easy题了,今天开始刷medium的537时点击打开链接,发现需要不断的将string和int类型相互转化,感觉写起来好麻烦。虽然过了,不过感觉快100行的代码实在是太复杂了,看了下别人的代码:
class Solution {public: string complexNumberMultiply(string a, string b) { int ra, ia, rb, ib; char buff; stringstream aa(a), bb(b), ans; aa >> ra >> buff >> ia >> buff; bb >> rb >> buff >> ib >> buff; ans << ra*rb - ia*ib << "+" << ra*ib + rb*ia << "i"; return ans.str(); }};
居然还有这种操作···主要还是自己没掌握字符串流操作的精髓,如果想使用strstream要引入strstream头文件;类似的stringstream的头文件为sstream,这里主要介绍一下针对这道题的一些心得,关于区别和其他应用可能以后会提到。
其中的buff吸首先收了第一个和整型不相关的字符“+”,之后吸收了“i”,从而让ra和ia中保留了a的实部和虚部。这里我对第一个“+”的过滤很好奇,而且之后如果出现了以“-”开头也会被判断为负数传入ia中。在本地跑了一些样例,代码很简单:
int main(){ string s; cin>>s; stringstream ss(s); int a,b; char c; ss>>a>>c>>b; cout<<a<<" "<<c<<" "<<b<<endl; return 0;}下面是几个例子分享给各位:
eg1:
input:111+222
output:111 + 222
eg2:
input:111-222
output:111 - 222
eg3:
input:111-+222
output:111 - 222
eg4:
input:111+-222
output:111 + -222
eg5:
input:111+++222
out:111 + 0
看来样例5出现问题了,字符流流入int类型变量中,最多只能在前面携带一个“+”或“-”。
阅读全文
0 0
- strstream 教训
- c++ strstream
- <sstream>和<strstream>的区别
- sstream和strstream以及fstream
- <sstream>和<strstream>的区别
- std::strstream和std::stringstream
- IO库——sstream和strstream
- zz头文件sstream,strstream的区别
- snprintf、stringstream、strstream的对比分析
- C++ IO流:iostream、fstream、strstream
- snprintf、stringstream、strstream的对比分析
- strstream 与 backward_warning.h 的警告问题
- C++标准库中sstream和strstream的区别
- C++标准库中sstream和strstream的区别
- C++标准库中sstream与strstream的区别详细解析
- C++标准库中sstream与strstream的区别详细解析
- 关于转换的问题,平时用到一些 内置类型之间的 转换方法如atoi atof itoa sprintf 等 istrstream ostrstream strstream【2013.10.21】
- c
- HQL常用的查询语句
- 指定月份获取每周开始和截止时间,不足一周下个月的补足一周,以周六为标准
- SDUT-二叉排序树
- Java管理扩展指南之JMX技术总览
- 机房重构未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件。
- c++ strstream
- MySQL_5.7.17的安装与配置
- c指针
- Handler机制和Can't create handler inside thread that has not called Looper.prepare()异常
- async 和await的结合promise用法
- Linux系统运维工程该具备哪些素质
- GCC编译系统基本过程详解
- java调用祖父类里被父类重写了的实例方法
- centos 安装docker