c++编辑char* argv[]中的元素

C++ editing the elements of char* argv[]

本文关键字:元素 argv 编辑 char c++      更新时间:2023-10-16

大家都知道这个函数:

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

我想在Linux中为我的程序写一个命令行接口,这通常是由getopt_long()完成的

我的程序将像这样从命令行执行:

pop3 get --limit 25 --recent 

因此,argv[]将包括pop3作为其程序名,其余的被视为选项。我想从我的字符串中删除pop3,并将它之后的第一个令牌设置为数组的第一个元素。除了循环,还有别的方法吗?

增加argv指针,减少argc指针。例子:

int main(int argc, char *argv[])
{
    argc--;
    argv++;
    return 0;
}

这是有效的,因为当您增加argv时,内存中仍然有以前的数据,只是argv的基址增加了。然后减去argc,因为现在少了一个参数