Sto provando a separare una stringa in più stringhe, per creare un terminale personalizzato. Finora ho separato i segnali di controllo usando strtok, tuttavia non capisco come separare specifiche istanze di un personaggio. Per esempio:Separazione di una stringa in C++
string input = "false || echo \"hello world\" | grep hello";
Quando si cerca di strtok questo input
e cercando di separare utilizzando |
l'output sarà:
false
, echo "hello world"
, grep hello
Invece, vorrei l'output be:
false || echo "hello world"
, grep hello
Come è possibile che strtok tratti |
e ||
invece di dire che sono uguali?
"* Come posso avere strtok trattare |? e || in modo diverso, piuttosto che averlo dicendo che sono la stessa *" - Questo accade perché 'strtok' considera ogni personaggio nel secondo argomento è un delimitazione. Inoltre, non restituisce una stringa vuota. Relativo [1] (http://stackoverflow.com/questions/29847915/implementing-strtok-whose-delimiter-has-more-than-one-character), [2] (http://stackoverflow.com/questions/ 7079694/is-there-a-way-to-split-a-string-su-multiplo-caratteri-in-c? Lq = 1) –