代码之家  ›  专栏  ›  技术社区  ›  anonymous coward

获取C++中字符数组指针的元素数

  •  1
  • anonymous coward  · 技术社区  · 15 年前

    我意识到这是一个令人难以置信的noob问题,但我已经在谷歌上搜索了它,似乎找不到答案(可能是因为我把问题的措辞弄错了……如果有,请随意修改)

    所以我有这个代码:

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

    如果我已经向我的程序传递了一个参数,那么它可以正常工作,但是如果我没有,那么显然它将失败,因为它试图为数组中不存在的元素建立索引。

    如何查找字符串数组中的元素数?

    4 回复  |  直到 15 年前
        1
  •  8
  •   GManNickG    15 年前

    那是什么 argc argv . 尝试编译并运行以下命令:

    #include <stdio.h>
    int main(int argc, char* argv[]) {
        int i;
        if (argc < 2) {
            printf ("No arguments.\n");
        } else {
            printf ("Arguments:\n");
            for (i = 1; i < argc; i++) {
                printf ("   %d: %s\n", i, argv[i]);
            }
        }
        return 0;
    }
    

    pax> ./prog
    No arguments.
    pax> ./prog a b c
    Arguments:
       1: a
       2: b
       3: c
    

    这个 argv 数组范围从 argv[0] (用于调用程序的名称,如果不可用,则为“”) argv[argc-1] . 第一个参数实际上是 argv[1] .

    C++标准实际上规定了 argv[argc] 是0(一个空指针),所以 能够 一步一步走过去 argv

        2
  •  1
  •   wallyk    15 年前

    那是什么 argc

    for (int j = 0;  j < argc;  ++j)
        puts (argv [j]);
    return 0;
    

        3
  •  0
  •   Zepplock    15 年前

    argc 是多个参数。请注意,应用程序的名称也是一个参数;-)

        4
  •  0
  •   Traveling Tech Guy    15 年前

    argc NumOfParamaeters = argc-1;