疫情当前,“串门就是互相残杀,聚会就是自寻短见”,所以,让我们一起快乐的敲代码吧!
这次分享的知识是:如何让整型、实型、字符型自由转换。 直接上代码:
//#include<bits/stdc++.h> 万能头文件
#include<iostream>
#include<string.h>
#include<sstream>
using namespace std ;
int main()
{
//stringstream (类型转换)
string a ; //char*、string
stringstream ss ; //定义ss
int num = 1234;
ss << num ;
ss >> a ; //输出:1234
ss.clear() ; //清除ss的内存
// float n3 = 456.123 ; //转换float
// ss << n3 ;
// ss >> a ;
return 0 ;
}
特殊应用:将算式转化:
原理:stringstream转化的数值会按照转化不了的值进行分割,
#include<iostream>
#include<sstream>
using namespace std;
int main() {
// 类型转换计算算式:
string a = "333+333+333"; //按加号分割
stringstream ss;
int num, sum = 0;
ss << a;
while(ss >> num) sum += num;
cout << sum;
}
//同理:如果将asd fff转化给string类型 会以空格进行分割。
总结:
1、可以使整型(int等)、实型(float等)、字符型(char *,string)互相转换。
2、必须一次性吸入,
如:
ss << 1 ;
ss << 2 ;
ss >> a 。
而不是:
ss << 1 ; //错!
ss >> a ;
ss << 1 ;
ss >> a ;
附录:
头文件<stdlib.h>有时会去抢stringstream的饭碗,如字符串与整型、浮点型的互相转化。有兴趣的读者可以了解一下。
传送门:#include<stdlib.h>
叮!