我想寫一個程序來分割數字和單詞。該代碼已完成,並且工作正常。我只是想知道如何在輸出結束時刪除逗號。如何在輸出結束時刪除逗號?
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
vector<string> split(string targer, string delimiter);
int main()
{
string s, delimiter;
vector<string> tokens;
cout << "Enter string to spilt:" << endl;
getline (cin,s);
cout << "Enter delimiter string:" << endl;
getline (cin,delimiter);
tokens = split(s, delimiter);
cout << "The substrings are: ";
for(int i = 0; i < tokens.size(); i++)
{
cout << "\"" << tokens[i] << "\"" << "," << " ";
}
cout<<endl;
return 0;
}
vector<string> split(string target, string delimiter){
stringstream ss(target);
string item;
vector<string> tokens;
while (getline(ss, item, delimiter.at(0))) {
tokens.push_back(item);
}
return tokens;
}
作爲一般建議:如果您期望函數返回一個長向量,則最好使該函數無效,並將非常量向量引用作爲存儲結果的函數的參數。這樣你就可以保存你的程序不必要的副本。 – phil13131
@ phil13131如果寫入'vector tokens = split(s,delimiter);'使RVO有效,那就好了。 –
songyuanyao
@ phil13131複製elision是一件事情。 http://en.cppreference.com/w/cpp/language/copy_elision –