可能重复:
在 C 中使用分隔符拆分字符串
我正在Linux中编写一个程序来模拟Shell。基本思想是首先使用 fgets 获取用户输入的一行,它应该类似于"ls -l"
,然后我将此字符串解析为“ls”和“-l”,然后构造一个二维数组,char *array[] = {"ls","-l"},
然后使用execvpe
需要三个参数:第一个也来自输入,即上面给出的示例中的“ls”,第二个是数组,第三个是一个指针,如数组,我在其中指定了一些目录。
问题是将像“ls -l”这样的字符串解析成二维数组。我打算使用malloc
创建数组。在 C 中解析字符串似乎很不方便。
有没有什么好方法可以将字符串解析"asd dg rg grhr"
为数组,如{"asd","dg","rg","grhr"}
.
此外,任何有关以另一种方式模拟 shell 的建议都值得赞赏。