stringsream用法
阅读原文时间:2023年07月11日阅读:3

stringstream:

头文件:

#include 

简单整理一下这玩意的作用,主要有三个吧.

  • 类型转化
  • 字符串拼接
  • 字符串整合(这一个用处特别大!!!!!!!)

先插个话,赋值语句:(这是个 流 的东西其实也不能叫赋值语句)

string str;
stringstream ss;
str = "123.456789";
ss << str;

//和stringstream ss(str); 是一样的

一.类型转化

1.字符串转数字

 double  dVal;  
 int     iVal;  
 string  str;  
 stringstream ss;

 // string -> double  
 str = "123.456789";  
 ss << str;  
 ss >> dVal;  
 cout << "dVal: " << dVal << endl;

 // string -> int  
 str = "";  
 ss.clear();//一定别忘记清空!  
 ss << str;  
 ss >> iVal;  
 cout << "iVal: " << iVal << endl;  

 return ;  

2.数字转字符串

void i2s(int num,string &str){
stringstream ss;
ss<>str;
}

注意一个问题,要进行多次转换的时候,要对原来那个进行清空

.clear()  或者 .str(" ");

(刚刚have a try,发现还是第一个比较好用)

二.字符串拼接(其实这个功能,放string里+一下就行了)

1 int main()
2 {
3 stringstream sstream;
4
5 // 将多个字符串放入 sstream 中
6 sstream << "first" << " " << "string,";
7 sstream << " second string";
8 cout << "strResult is: " << sstream.str() << endl;
9
10 // 清空 sstream
11 sstream.str("");
12 sstream << "third string";
13 cout << "After clear, strResult is: " << sstream.str() << endl;

//sstream.str()可以导出在sstream中的所有东西

三.分割

这里不得不提一个叫getline 的东西,这个东西默认是不会读到空格停止的.看这个吧:https://www.cnblogs.com/zhmlzhml/p/12669967.html

getline不会因空格而停止(一读读一行)但是输入输出流会(包括伟大的cin),两者配合,可以成功实现单词的分割

#include
#include
using namespace std;
int main()
{
string line,word;
while(getline(cin,line))
{
stringstream stream(line);
cout<>word){cout<<word<<endl;}//挨个出去
}
return 0;
}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章