c++若何朋分字符串示例代碼。本站提示廣大學習愛好者:(c++若何朋分字符串示例代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是c++若何朋分字符串示例代碼正文
話不多說,直接上代碼
假如須要依據單一字符朋分單詞,直接用getline讀取就行了,很簡略
#include <iostream> #include <vector> #include <string> #include <sstream> using namespace std; int main() { string words; vector<string> results; getline(cin, words); istringstream ss(words); while (!ss.eof()) { string word; getline(ss, word, ','); results.push_back(word); } for (auto item : results) { cout << item << " "; } }
假如是多種字符朋分,好比,。!等等,就須要本身寫一個相似於split的函數了:
#include <iostream> #include <vector> #include <string> #include <sstream> using namespace std; vector<char> is_any_of(string str) { vector<char> res; for (auto s : str) res.push_back(s); return res; } void split(vector<string>& result, string str, vector<char> delimiters) { result.clear(); auto start = 0; while (start < str.size()) { //依據多個朋分符朋分 auto itRes = str.find(delimiters[0], start); for (int i = 1; i < delimiters.size(); ++i) { auto it = str.find(delimiters[i],start); if (it < itRes) itRes = it; } if (itRes == string::npos) { result.push_back(str.substr(start, str.size() - start)); break; } result.push_back(str.substr(start, itRes - start)); start = itRes; ++start; } } int main() { string words; vector<string> result; getline(cin, words); split(result, words, is_any_of(", .?!")); for (auto item : result) { cout << item << ' '; } }
例如:輸出hello world!Welcome to my blog,thank you!
以上就是c++若何朋分字符串示例代碼的全體內容,年夜家學會了嗎?願望本文對年夜家應用C++的時刻有所贊助。