所以我只想在C++中创建一个C字符串数组。是的,我知道C++使用字符串数据类型,但我正在做的工作需要我创建一个C字符串数组。C字符串本身是一个字符数组。那么,创建一个C字符串数组就像创建一个二维char数组一样吗?然后,为了访问每个单独的char,我需要指定它各自的行和列位置。然而,我想把它想象成一个一维的C字符串数组,其中每个索引都返回一个完整的C字符串。我该怎么做呢?请解释一下。如何遍历这样的数组并打印或返回每个C字符串,而不是让嵌套循环分别返回每个字符?
发布于 2017-02-19 06:36:39
对于字符串文字,您可以这样做:
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;
}发布于 2017-02-19 06:36:52
基本上,C样式的字符串只不过是一个以'\0'结尾的char数组。要拥有一个“字符串”数组,您只需拥有一个数组数组,例如
char my_array_of_strings[ARRAY_SIZE][STRING_SIZE + 1]; // +1 for terminator或者你可以有一个指针数组:
char* my_array_of_strings[ARRAY_SIZE];哪一个是最好的取决于你的用例。
https://stackoverflow.com/questions/42321458
复制相似问题