如何创建C字符串数组?

时间:2017-02-18 22:34:27

标签: c++ arrays c-strings

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

2 个答案:

答案 0 :(得分:2)

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

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;
}

答案 1 :(得分:1)

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

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

你可以有一个指针数组:

char* my_array_of_strings[ARRAY_SIZE];

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