C语言 在while循环中调用strtok(),但结果显示重复

f4t66c6m  于 2023-03-01  发布在  其他
关注(0)|答案(1)|浏览(172)

我目前正在创建一个简单的shell程序,它接受输入命令并执行它们,我需要使用strtok()解析输入的命令,但我在char[]中得到了第一个命令的副本。

int parse_command(char command[], char *args[])
{
    int i = 0;
    while (args[i] != NULL) {
        args[i] = strtok(command, " \n");
        //cout << args[i];
        i++;    
    }
    return 0;
}

在我的主要,我只是运行:

execvp(args[0], args);
hwazgwia

hwazgwia1#

正确使用strtok()

for( char *cp = command; (cp = strtok( cp, " \n" ) ) != NULL; cp = NULL ) {
    puts( cp );
    /* store these away if that's what you intend */
}

相关问题