C ++编辑char * argv []的元素

时间:2015-09-02 13:14:15

标签: c++ c linux

大家都知道这个功能:

int main(int argc, char* argv[])
{

}

我想在Linux中为我的程序编写一个命令行界面,通常由getopt_long()

完成

我的程序将从命令行执行,如下所示:

pop3 get --limit 25 --recent 

因此,argv[]将包含pop3作为其程序名称,其余部分将被视为选项。 我想从我的字符串中删除pop3并将其后的第一个标记设置为数组的第一个元素。除了循环之外,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:10)

只需递增argc指针,然后递减int main(int argc, char *argv[]) { argc--; argv++; return 0; } 。 例如:

argv

这很有效,因为当你增加argv时,你仍然拥有内存中的先前数据,只是argc的基地址已经增加了。你递减{{1}},因为你现在少了一个论点。