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