连接命令行参数的最佳方法

Best way to concatenate command line args

optind 指向我的第一个非开关参数。总共可以有任意数量的参数。我需要将剩余的参数连接成 char*。我有一个从 arg[optind]arg[argc-1] 的循环,并获取每个循环的 (length + 1) (一个用于 args 之间的空格,一个用于最后的 '[=14=]'totalLen += strlen(arg[i]) + 1。一旦我有了长度,通过另一个循环连接参数的最佳途径是什么?

您可以使用 std::string and it's operator +=() 循环遍历 argv[] 并将参数添加到字符串中。

std::string non_switch;
for (int i = optind; i < argc; i++)
    non_switch += argv[i];