C++ ,字符串数组

C++ , Array of strings

本文关键字:数组 字符串 C++      更新时间:2023-10-16

我只是想知道如何创建一个字符串数组。我希望制作一个由 10 个字符串组成的数组,每个字符串可以有 20 个字符。

#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++新手,思想开放:)

不如改用

std::vector<std::string> my_strings(10);  // vector of 10 strings

这种方式比静态大小的char数组要容易得多。

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

您还可以获得std::string类的所有漂亮功能。

你在做的是更多的C方法。
无论如何:

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++ 中,您宁愿使用:

std::string strings[10];

或者最好的选择是:

std::vector<std::string> strings(10);

在 C++ 11 中,您可以像这样迭代上一种情况:

for(auto singleString : strings)
{
}

按优先顺序:

10 个字符串的向量:

std::vector<std::string> aVector(10);

一个包含 10 个字符串的数组:

std::string anArray[10];

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

typedef char MyString[21];  // 20 + 1, for the terminating zero
MyString arrayOfThem[10];

或者,更神秘的变体

char anArray[10][21];