Próbuję oddzielić ciąg na wiele ciągów, aby dostosować terminal. Do tej pory oddzielałem sygnały sterujące za pomocą strtok, jednak nie rozumiem, jak oddzielać określone instancje postaci. Na przykład:Rozdzielanie ciągu znaków w C++
string input = "false || echo \"hello world\" | grep hello";
Podczas próby strtok ten input
i próbując oddzielić za pomocą |
wyjście byłoby:
false
, echo "hello world"
, grep hello
Zamiast tego chciałbym wyjście do być:
false || echo "hello world"
, grep hello
W jaki sposób mogę traktować strtok traktować |
i ||
inaczej niż mówiąc, że są one takie same?
"* Jak mogę mieć strtok leczyć? | i || inaczej zamiast go mówiąc, że są takie same *" - Dzieje się tak, ponieważ 'strtok' uważa każdy znak w drugim argumencie jako ogranicznik. Ponadto nie zwraca pustego ciągu. Podobne [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-on-multiple-characters-in-c? Lq = 1) –