-1
vector<string> Util::split(string str, char delimiter){
vector<string> internal;
stringstream ss(str); // Turn the string into a stream.
string tok;
while(getline(ss, tok, delimiter)) {
internal.push_back(tok);
}
return internal;
}
chaînestr = "k 1" 1;chaîne de Spliting en variables séparées en C++
getline (art, Tok, ' «)
si je tente de vérifier la taille du vecteur de retour est de taille ONE.
chaîne str = "k, 1,1";
getline (ss, tok, '')
Cependant, si je change le délimiteur pour une virgule et modifier la chaîne tok variable.
la taille serait alors trois
Donc, il y a un problème avec des espaces blancs
Que puis-je faire pour faire ce travail? J'ai été sur cela pendant pratiquement toute la journée.
int main(){
Util src;
int runProgram = 1;
string input;
while(runProgram!=0){
cout << "Input your command to perfrom operation: " << endl;
cin >> input; // user inputs "k 1 1"
vector<string>sep=src.split(input, ' ');
cout << sep.size() << endl; // size is one when it should be 3
}
}
Le code ci ne fonctionnera pas, peu importe ce qui sera mis en 'tok', puisque le' stringstream' se construit à partir d'une autre variable mystérieuse nommée 'str'. Basé sur la description, il me semble que le code affiché n'est pas du vrai code, mais du code fantastique. Une vraie réponse à une vraie question nécessitera du vrai code, pas du code fantaisie. –
Vous avez raison mon erreur – Marke
Votre code comme montré maintenant [fonctionne parfaitement bien] (http://coliru.stacked-crooked.com/a/062c49efb0278e67). S'il vous plaît fournir un [mcve] qui présente effectivement le problème. – zett42