- 方式1:使用stringstream拆分
#include<bits/stdc++.h>
using namespace std;
string nums;
int num;
int main() {
nums = "12 69 37 55a48";
stringstream ss(nums);
while(ss >> num){
cout << num << endl;
}
}
输出:
12
69
37
55
缺点:如碰到数据类型不符的值,会中断输入;分隔符只能是空格
- 方式2:
#include <bits/stdc++.h>
using namespace std;
string nums, num;
int main(){
nums = "12 69 37 55a48";
stringstream ss(nums);
while (getline(ss, num, ' ')){
cout << num << endl;
}
}
输出:
12
69
37
55a48
缺点:只能转为字符串,但分隔符扩展到任意。后续可通过stoi()转int型、stod()转double型、stoll()转ll型、stoull转__int128_t等
tips:
int等转string也可通过该方法实现,另外也可通过to_string()实现.