stringstream用法

来源本站博主@sunny-ll

一、stringstream的用法

#include<sstream>

1. 第一种构造方式

两个字符串直接拼接在了一起
ss1 << "fre";

2. 第二种构造方式

string str("asd");
stringstream ss2(str);
//会被第一种方式覆盖
ss2 << "r"; 

3.不被覆盖的方法

ostringstream ss("1 2 3 4 ", std::ios_base::ate);
// append 方式追加
修改、清空 stringstream 内容

stringstream 的内容可以通过 str() 函数进行修改、清空:

	//初始化
	stringstream ss("hello string");
		
	// 修改内容
    ss.str("hello stringstream");
    
    // 清空内容
    ss.str("");

二、stringstream的用途

利用 stringstream 去除字符串空格

stringstream 默认是以空格来分割字符串的,利用 stringstream 去除字符串空格非常方便:

stringstream ss("hello string and stringstream");

string str;
// 注意: stringstream 是一个单词一个单词 ”流入“ string 的
ss >> str
利用 stringstream 指定字符分割字符串

需要与 getline() 函数搭配使用

getline()的原型是istream& getline ( istream &is , string &str , char delim );

其中istream &is 表示一个输入流,
例如,可使用cin;

string str ;
getline(cin ,str)

也可以使用 stringstream.

stringstream ss(“test#”) ; 
getline(ss,str)

char delim表示遇到这个字符停止读入,通常系统默认该字符为’\n’,也可以自定义字符

string source = "abc,123,<!>";
stringstream ss(source);
cout<<ss.str()<<endl;

string str;
while(getline(ss, str, ','))
    cout<<str<<endl;

/*输出:
abc,123,<!>
 
abc
123
<!>
*/
类型转换
  • 使用 stringstream 将数字转换为字符串的例子:
	int num = 123;
    stringstream ss;
    ss << num; // 将整数放入流中
    string str = ss.str(); // 使用str()函数 从流中提取字符串
    cout << str << endl; // 输出:123
  • 反过来,也可以将字符串转换为数值类型:
		string str = "456";
		stringstream ss(str); // 初始化stringstream
		int num;
		ss >> num; // 从流中提取整数
		cout << num << endl; // 输出:456
``
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值