首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++,字符串数组

C++,字符串数组
EN

Stack Overflow用户
提问于 2014-12-08 14:07:39
回答 3查看 165关注 0票数 0

我只是想知道如何创建一个字符串数组。我正在寻找一个由10个字符串组成的数组,每个字符串可以有20个字符。

代码语言:javascript
复制
#include <iostream>
int main()
{
   char a[10] , str[20];
    for (int x = 0 ; x<10 ; x++)
   {
    for (int y = 0 ;y<20; y++ )
      {
         cout<<"String:";
         cin>>str[y];
         a[x]=str[y];
      }
   }
   for (int j = 0 ; j<10 ; j++)
    cout<<a[j]<<endl;
    return 0;
}

C++中的新手有着开放的心态:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-08 14:16:00

你所做的是更多的C方法。

总之:

代码语言:javascript
复制
char strings[10][20];

//Accessing each string
for(int i = 0; i < 10; i++)
{
    //Accessing each character
    for(int j = 0; j < 20; j++)
    { 
        char character = strings[i][j];
    }
}

在c++中,您更愿意使用:

代码语言:javascript
复制
std::string strings[10];

或者最好的选择是:

代码语言:javascript
复制
std::vector<std::string> strings(10);

在c++ 11中,您可以像下面这样迭代最后一种情况:

代码语言:javascript
复制
for(auto singleString : strings)
{

}
票数 0
EN

Stack Overflow用户

发布于 2014-12-08 14:08:37

不如你用一个

代码语言:javascript
复制
std::vector<std::string> my_strings(10);  // vector of 10 strings

这样做比静态大小的char数组容易得多。

然后您将获得std::vector容器的所有特性,包括动态大小。

您还可以获得std::string类的所有优秀特性。

票数 4
EN

Stack Overflow用户

发布于 2014-12-08 14:24:05

按优先次序:

由10个字符串组成的向量:

代码语言:javascript
复制
std::vector<std::string> aVector(10);

由10个字符串组成的数组:

代码语言:javascript
复制
std::string anArray[10];

如果您真的想使用以零结尾的C字符串:

代码语言:javascript
复制
typedef char MyString[21];  // 20 + 1, for the terminating zero
MyString arrayOfThem[10];

或者,更神秘的变体

代码语言:javascript
复制
char anArray[10][21]; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27359766

复制
相关文章

相似问题

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