首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建C字符串数组?

如何创建C字符串数组?
EN

Stack Overflow用户
提问于 2017-02-19 06:34:27
回答 2查看 6.7K关注 0票数 1

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

EN

回答 2

Stack Overflow用户

发布于 2017-02-19 06:36:39

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

代码语言:javascript
复制
const char *strings[] = { "foo", "bar", "blech" };

对于想要修改的字符串数组,您可以执行更多类似如下的操作:

代码语言:javascript
复制
char strings[3][80] = { "foo", "bar", "blech" };

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

代码语言:javascript
复制
for (int i = 0; i < 3; ++i)
{
    std::cout << strings[i] << std::endl;
}

或者更惯用的说法是:

代码语言:javascript
复制
for (auto & s : strings)
{
    std::cout << s << std::endl;
}
票数 4
EN

Stack Overflow用户

发布于 2017-02-19 06:36:52

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

代码语言:javascript
复制
char my_array_of_strings[ARRAY_SIZE][STRING_SIZE + 1];  // +1 for terminator

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

代码语言:javascript
复制
char* my_array_of_strings[ARRAY_SIZE];

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42321458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档