stringstream分割字符与类型转换

stringstream分割字符与类型转换用法:

#include 
#include 
#include 
using namespace std;
int main(){

    //    string s;
    //    getline(cin,s);

/**********如果输入是以其他符合分割(如逗号等),先利用getline(ss, word,',')分割成string,再通过ss2转换成int类型***********/

//-----------分割字符----------------------
    string s1="1,2,3,4,5,6";
    //string s1="hello,my,name,is,C++";
    stringstream ss(s1);
    string word;
    vectorv;
    while(getline(ss, word,','))
        v.push_back(word);

//如果只要string类型截止到上面,如果还要把string转int,采用下面方法

//-----------类型转换----------------------
    vector Output;

    //法一:利用stringstream实现类型转换
    stringstream ss2;
    int num;
    vector::iterator it;
    for(it=v.begin();it!=v.end();++it){
        ss2<<*it;
        ss2>>num;
        ss2.clear(); //使用同一个stringstream不要忘记清除
        Output.push_back(num);
    }

    //法二:采用atoi函数将string转成int
//    vector::iterator it2;
//    for(it2=v.begin();it2!=v.end();++it2)
//       Output.push_back(atoi((*it2).c_str()));

    //输出
    for(auto e:Output)
      cout<vv;
//    int num;
//    while(ss>>num)
//      vv.push_back(num);
//    vector::iterator iter;
//    for(iter=vv.begin();iter!=vv.end();++iter){
//     cout<<*iter<

LeetCode题目详解

Input: "1+1i", "1+1i"
Output: "0+2i"
Explanation: (1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i, and you need convert it to the form of 0+2i.

 

class Solution {
public:
    string complexNumberMultiply(string a, string b) {
        int ra, ia, rb, ib;
        char buff;
        stringstream aa(a), bb(b), ans;
        aa >> ra >> buff >> ia >> buff;//拆分
        bb >> rb >> buff >> ib >> buff;
        ans << ra*rb - ia*ib << "+" << ra*ib + rb*ia << "i";//组合
        return ans.str();
    }
};

      stringstream类型转换的时候,一直读到第一个不符合类型的字符为止。因此 空格 + - 会成为字符串参数的内部分界,例子中对ra,ia对象的输入”赋值”操作证明了这一点,字符串的空格成为了整型数据与符号数据的分解点,利用分界获取的方法我们事实上完成了字符串到整型对象与符号对象的拆分转换过程

参考链接:https://blog.csdn.net/qq_34244317/article/details/78070883

                https://blog.csdn.net/xw20084898/article/details/21939811

                https://www.cnblogs.com/qiaoconglovelife/p/5585710.html

你可能感兴趣的:(C++)