Je suis en train de diviser un char * basé sur un séparateur en utilisant des vecteurs imbriqués mais le dernier mot du char * semble ne pas être ajouté au vecteur>scission mise en œuvre en utilisant des vecteurs et char *
vector<vector<char>> split(char* word, const char de){
vector<vector<char>> words;
vector<char> c_word;
while(*word){
if(*word == de){
words.push_back(c_word);
c_word.clear();
word++;
continue;
}
c_word.push_back(*word);
word++;
}
return words;
}
Exemple utilisation:
int main() {
char *let = "Hello world!";
vector<vector<char>> words = split(let, ' ');
for(int x = 0;x < words.size();x++){
for(int y = 0;y < words[x].size();y++){
cout << words[x][y];
}
cout << endl;
}
}
ce imprimerait seulement Bonjour
pouvez-vous fournir un code avec une entrée de sorte que vous pouvez l'essayer? www.ideone.com –
Y a-t-il une raison pour utiliser 'std :: vector>' au lieu de 'std :: vector '? Et 'char *' au lieu de 'std :: string'? –
À moins que le dernier char ne soit le délimiteur, vous aurez toujours un mot dans 'c_word' lorsque la boucle sera terminée. –