Ich versuche, ein Zeichen zu teilen * basierend auf einem Begrenzungszeichen verschachtelte Vektoren jedoch das letzte Wort des char * scheint nicht zu dem> Vektor hinzugefügt wirdgeteilte Implementierung unter Verwendung von Vektoren und 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;
}
Beispiel Nutzung:
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;
}
}
dieses nur Hallo
können Sie einen Code mit Eingabe bereitstellen, damit man es ausprobieren kann? www.ideone.com –
Gibt es einen Grund, warum Sie 'std :: vector>' anstelle von 'std :: vector ' verwenden? Und 'char *' anstelle von 'std :: string'? –
Wenn das letzte Zeichen nicht das Trennzeichen ist, haben Sie immer noch ein Wort in 'c_word', wenn die Schleife beendet ist. –