gpt4 book ai didi

c - strtok 和转义字符

转载 作者:行者123 更新时间:2023-11-30 14:23:47 26 4
gpt4 key购买 nike

我正在使用 C 编写一个 shell,它在空格字符 (' ') 上使用 strtok 从用户输入创建参数列表。例如,strtok 'ls foo bar' 创建一个包含三个元素的 char*:ls、foo、bar。

我的问题是,如何检测逃逸空间?

例如,strtok 'ls foo\bar' 创建一个包含三个元素的 char**:ls、foo\、bar。但它应该创建一个包含两个元素的 char*:ls、foo bar

我怎样才能做到这一点?

最佳答案

您将无法使用 strtok,因为 strtok 无法识别转义字符。您可以尝试解决这个问题,但最终如果您想支持引用参数之类的东西,您将需要一种更灵活的方法。

考虑编写一个解析器。只需循环输入中的每个字符并决定如何处理该字符:空格前进到下一个参数,反斜杠逐字复制下一个字符,引号开始带引号的上下文等。这是一种更灵活的处理输入的方式,并且您不会受到 strtok 的限制。

关于c - strtok 和转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12568643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com