博客中(OJ在线编程:C++输入输出控制 ),已整理11种场景的输入处理,参考大佬们造的轮子,封装了C++字符串的分割函数(类似于Java的split方法),欢迎自取。


字符串排序(3)
考点:键盘输入多组数据,每组数据个数不定,根据指定字符分割字符串。
输入:多个测试用例,每个测试用例一行。每行通过逗号,隔开,有n个字符,n<100
输出:对于每组用例输出一行排序后的字符串,用逗号’,'隔开,无结尾空格。

输入:
a,c,bb
f,dddd
nowcoder

输出:
a,bb,c
dddd,f
nowcoder
#include <iostream>
using namespace std;
#include <string>
#include <vector>
#include <sstream>
#include <algorithm>

void printVector(const vector<string> &vec){
    for(int i = 0; i < vec.size(); i++){
        if(i != vec.size() - 1){
            cout << vec[i] << ",";
        }else{
            cout << vec[i] << endl;
        }   
    }
}

int main(){
    int n;
    string line;    //一整行字符串
    string temp;    //被分割的字符串
    vector<string> vec;

    //每次读取一整行
    while(getline(cin, line)){
        //创建字符串流stringstream对象
        stringstream ss(line);

        //根据指定字符分割字符串
        while(getline(ss, temp, ',')){
            vec.push_back(temp);
        }

        sort(vec.begin(), vec.end());
        printVector(vec);
        vec.clear();
    }
    return 0;
}