Pour le délimiteur de chaîne
Divise la chaîne de caractères en fonction d'un délimiteur de chaîne . Comme la division d'une chaîne de caractères "adsf-+qwret-+nvfkbdsj-+orthdfjgh-+dfjrleih"
basé sur le délimiteur de chaîne "-+"
le résultat sera {"adsf", "qwret", "nvfkbdsj", "orthdfjgh", "dfjrleih"}
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
// for string delimiter
vector<string> split (string s, string delimiter) {
size_t pos_start = 0, pos_end, delim_len = delimiter.length();
string token;
vector<string> res;
while ((pos_end = s.find (delimiter, pos_start)) != string::npos) {
token = s.substr (pos_start, pos_end - pos_start);
pos_start = pos_end + delim_len;
res.push_back (token);
}
res.push_back (s.substr (pos_start));
return res;
}
int main() {
string str = "adsf-+qwret-+nvfkbdsj-+orthdfjgh-+dfjrleih";
string delimiter = "-+";
vector<string> v = split (str, delimiter);
for (auto i : v) cout << i << endl;
return 0;
}
Sortie
adsf
qwret
nvfkbdsj
orthdfjgh
dfjrleih
Pour le délimiteur à un seul caractère
Divise la chaîne de caractères en fonction d'un délimiteur de caractères. Par exemple, diviser une chaîne de caractères "adsf+qwer+poui+fdgh"
avec le délimiteur "+"
produira {"adsf", "qwer", "poui", "fdg"h}
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
vector<string> split (const string &s, char delim) {
vector<string> result;
stringstream ss (s);
string item;
while (getline (ss, item, delim)) {
result.push_back (item);
}
return result;
}
int main() {
string str = "adsf+qwer+poui+fdgh";
vector<string> v = split (str, '+');
for (auto i : v) cout << i << endl;
return 0;
}
Sortie
adsf
qwer
poui
fdgh
2 votes
stackoverflow.blog/2019/10/11/ Descendez jusqu'au numéro 5.