C ++: fractionner une chaîne en un tableau
Je suis en train d'insérer une chaîne de caractères séparés par des espaces dans un tableau de chaînes sans à l'aide de vector en C++. Par exemple:
using namespace std;
int main() {
string line = "test one two three.";
string arr[4];
//codes here to put each word in string line into string array arr
for(int i = 0; i < 4; i++) {
cout << arr[i] << endl;
}
}
Je veux la sortie:
test
one
two
three.
Je sais qu'il y a déjà beaucoup de questions à poser string > array en C++. Je réalise que j'ai peut-être un double de la question, mais je ne pouvais pas trouver une réponse satisfaisante à mes conditions (découpage d'une chaîne en un tableau SANS utiliser de vecteur). Je m'excuse à l'avance dans le cas où c'était une répétition de la question.
source d'informationauteur txp111030
Vous devez vous connecter pour publier un commentaire.
Il est possible de transformer la chaîne de caractères dans un cours d'eau à l'aide de la
std::stringstream
classe (son constructeur prend une chaîne de caractères comme paramètre). Une fois construite, vous pouvez utiliser le>>
opérateur (comme sur un fichier régulier en fonction des ruisseaux), qui est extrait, ou marquer mot:Trivial:
Suivre le lien
Voici une suggestion: utiliser deux indices dans la chaîne, dire
start
etend
.start
points pour le premier caractère de la chaîne suivante pour extraire,end
points pour le caractère suivant le dernier appartenant à la prochaine chaîne de caractères à extraire.start
commence à zéro,end
obtient la position du premier caractère aprèsstart
. Ensuite, vous prenez la corde entre[start..end)
et l'ajouter à votre tableau. Vous continuez jusqu'à ce que vous atteignez la fin de la chaîne.