【问题标题】:How to create an array of C-strings?如何创建一个 C 字符串数组?
【发布时间】:2017-02-18 22:34:27
【问题描述】:

所以我只想在 C++ 中创建一个 C 字符串数组。是的,我知道 C++ 使用字符串数据类型,但我正在做的工作需要我创建一个 C 字符串数组。 C 字符串本身是一个字符数组。那么制作一个 C 字符串数组就像制作一个二维 char 数组一样吗?然后要访问每个单独的字符,我需要指定其各自的行和列位置。但是,我想把它想象成一个 C 字符串的一维数组,其中每个索引都返回一个完整的 C 字符串。我怎样才能做到这一点?请解释。如何循环遍历这样的数组并打印出或返回每个 C 字符串,而不是使用嵌套循环分别返回每个字符?

【问题讨论】:

    标签: c++ arrays c-strings


    【解决方案1】:

    对于字符串文字,您可以这样做:

    const char *strings[] = { "foo", "bar", "blech" };
    

    对于你想要修改的字符串数组,你可能会做更多这样的事情:

    char strings[3][80] = { "foo", "bar", "blech" };
    

    无论哪种方式,您都可以像这样打印它们:

    for (int i = 0; i < 3; ++i)
    {
        std::cout << strings[i] << std::endl;
    }
    

    或者更惯用的说法:

    for (auto & s : strings)
    {
        std::cout << s << std::endl;
    }
    

    【讨论】:

      【解决方案2】:

      C 风格的字符串基本上只是一个char 的数组,以'\0' 结尾。要拥有一个“字符串”数组,您只需拥有一个数组数组,例如

      char my_array_of_strings[ARRAY_SIZE][STRING_SIZE + 1];  // +1 for terminator
      

      或者你可以有一个指针数组:

      char* my_array_of_strings[ARRAY_SIZE];
      

      哪个最好取决于您的用例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-04
        • 2013-02-16
        • 2015-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多