我想将一个字符串分隔成多个字符串来制作一个自定义的终端。到目前为止,我一直在使用strtok来分离控制信号,但是我不明白如何区分特定的角色实例。例如:在C++中分隔字符串
string input = "false || echo \"hello world\" | grep hello";
当试图函数strtok这个input
并尝试使用|
分离输出将是:
false
,echo "hello world"
,grep hello
相反,我想输出到成为:
false || echo "hello world"
,grep hello
我该如何让strtok以不同的方式对待|
和||
而不是说它们是相同的?
“*我怎么能有strtok的治疗?|和||不同,而不是它说他们是一样的*” - 这是因为'strtok'认为每个字符在第二个参数是一个分隔符。而且,它不会返回空字符串。相关[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-split-a-string-on-multiple-characters-in-c?lq = 1) –