使用strtok来分离命令行传参
代码
char param[16][128] = {0};
if (argv && argv_len != 0)
{
char *in;
const char s[2] = " ";
in = strtok((char *)argv, s);//suggest strtok_r()
while(in != NULL)
{
strncpy(param[argc++], in, strlen(in));
in = strtok(NULL, s);
}
}
注意:strtok只是将需要替换的字符替换成了’\0’,原先字符串列表里有多少长,替换后依旧是多长。其次字符串的结尾是‘\0’结束,正常打印无法打印出来,只会显示第一个以‘\0’结尾的字符串
留个小问题:
若某一个参数是带有引号的,引号内部的空格不需要解析,如何处理?