我正在为学校作业做一个 shell(在 C 中),我遇到了这个问题:我已经阅读了输入并且有单词数组。(像这样:{“/bin/ls”,“-l”,“>”,“file”})我希望子数组包含特殊符号之间的所有单词,如'<','>','|' . 所以如果我的输入是
/bin/ls -l > f.txt > /usr/bin/wc
我希望有:
{{"bin/ls", "-l"}, {"f.txt"}, {"usr/bin/wc"}}
这样我就可以使用正确的参数轻松调用 execv 。
目前我有 char***,我几乎不分配 3 个周期,然后使用一些不那么简单的算法从 char** 复制到 char***。
有没有简单的方法将字符串数组拆分为字符串数组?(对我来说,将数组拆分为子字符串似乎是一项微不足道的任务,但 C 让我很难)
另外,我知道我可以在这些特殊符号处拆分输入,然后在它们之间获取数组,但我对如何拆分数组很感兴趣。