c++如何分割字符串示例代碼
話不多說,直接上代碼
如果需要根據(jù)單一字符分割單詞,直接用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的函數(shù)了:
#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())
{
//根據(jù)多個分割符分割
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++如何分割字符串示例代碼的全部內(nèi)容,大家學(xué)會了嗎?希望本文對大家使用C++的時候有所幫助。
相關(guān)文章
C++類與對象深入之引用與內(nèi)聯(lián)函數(shù)與auto關(guān)鍵字及for循環(huán)詳解
朋友們好,這篇播客我們繼續(xù)C++的初階學(xué)習(xí),現(xiàn)在對一些C++的入門知識做了些總結(jié),整理出來一篇博客供我們一起復(fù)習(xí)和學(xué)習(xí),如果文章中有理解不當?shù)牡胤?還希望朋友們在評論區(qū)指出,我們相互學(xué)習(xí),共同進步2022-06-06
深入C++拷貝構(gòu)造函數(shù)的總結(jié)詳解
本篇文章是對C++中拷貝構(gòu)造函數(shù)進行了總結(jié)與介紹。需要的朋友參考下2013-05-05
一篇文章帶你用C語言玩轉(zhuǎn)結(jié)構(gòu)體
本文主要介紹C語言 結(jié)構(gòu)體的知識,學(xué)習(xí)C語言肯定需要學(xué)習(xí)結(jié)構(gòu)體,這里詳細說明了結(jié)構(gòu)體并附示例代碼,供大家參考學(xué)習(xí),有需要的小伙伴可以參考下2021-09-09
C語言數(shù)組應(yīng)用實現(xiàn)三子棋游戲
這篇文章主要為大家詳細介紹了C語言數(shù)組應(yīng)用實現(xiàn)三子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06
數(shù)據(jù)結(jié)構(gòu)之帶頭結(jié)點的單鏈表
單鏈表是一種鏈式存取的數(shù)據(jù)結(jié)構(gòu),用一組地址任意的存儲單元存放線性表中的數(shù)據(jù)元素。鏈表中的數(shù)據(jù)是以結(jié)點來表示的,每個結(jié)點的構(gòu)成:數(shù)據(jù)域(數(shù)據(jù)元素的映象)?+?指針域(指示后繼元素存儲位置),元素就是存儲數(shù)據(jù)的存儲單元,指針就是連接每個結(jié)點的地址數(shù)據(jù)2023-07-07

