将空格分隔的字符串转换为C中的指针数组

时间:2013-02-16 23:39:11

标签: c

我有一个这样的字符串:“arg1 arg2 arg3”我要发送给exec。但是execvpe将一个指针数组作为命令参数。有没有办法让我可以把arg1,arg2和arg3放到一个指针数组中?

我用strtok将它们分开,但不确定接下来要做什么......我有* argv [x]等待它们。

谢谢你,     Ĵ

1 个答案:

答案 0 :(得分:1)

strtok已经向您发送指向每个项目的指针,因此您需要做的就是获取strtok返回的值并将它们放在argv数组中。

char *str = "arg1 arg2 arg3";
char *argv[3];

int i = 0;
argv[i] = strtok(args, " ");
while (argv[i] != NULL) {
    i++;
    argv[i] = strtok(NULL, " ");
 }