C++中拆分含空格的字符串 | ostringstream、istringstream、stringstream的区别

拆分含空格的字符串

我个人习惯直接用stringstream,因为它既能输入又能输出

用法示例如下

#include
using namespace std;
int main()
{
    stringstream ss;
    int a = 105;
    double b = 1.2;
    string c = "aaa bbb ccc";
    string d = "41241";

    int t1,t3;
    string t2;
    //将数字转化为字符串
    ss << a;
    ss >> t2;
    cout << t2 << endl;

    ss.clear();//清空
    ss << b;
    ss >> t2;
    cout << t2 << endl;

    //将字符串转化为数字
    ss.clear();
    ss << d;
    ss >> t3;
    cout << t3 << endl;

    //按空格拆分字符串
    ss.clear();
    ss << c;
    while(!ss.eof())
    {
        ss >> t2;
        cout << t2 << endl;
    }
	return 0;
}
/*
output
105
1.2
41241
aaa
bbb
ccc
*/

ostringstream、istringstream、stringstream的区别

ostringstream : 用于执行C风格字符串的输出操作,只允许 "<<"操作。

istringstream : 用于执行C风格字符串的输入操作,只允许 ">>"操作。

stringstream : 同时支持C风格字符串的输入输出操作。

通常,ostringstream 类用来格式化字符串,避免申请大量的缓冲区,替代sprintf。该类能够根据内容自动分配内存,其对内存管理也是相当到位

C++中拆分含空格的字符串 | ostringstream、istringstream、stringstream的区别_第1张图片

你可能感兴趣的:(笔记,c++,stream,字符串)