如何从用户接收多个字符串并将这些字符串添加到C++中的数组中? 我是C++初学者,我有个问题,

如何从用户接收多个字符串并将这些字符串添加到C++中的数组中? 我是C++初学者,我有个问题,,c++,arrays,c-strings,C++,Arrays,C Strings,我想从用户那里接收多个字符串,并将这些字符串中的每一个添加到C++中的数组中。 例如: 输入: cin >> "sara"; cin >> "jack"; cin >> "john"; 输出: string_of_names = {"sara", "jack", "john"} 以下是我尝试过的: #include <iostream> using namespace std; int main() { const int N =

我想从用户那里接收多个字符串,并将这些字符串中的每一个添加到C++中的数组中。

例如:

输入:

cin >> "sara"; 

cin >> "jack";

cin >> "john";
输出:

string_of_names = {"sara", "jack", "john"}
以下是我尝试过的:

#include <iostream>
using namespace std;
int main()
{
    const int N = 200;
    char string[N];


    for (int i=0; i < 3; i++)
    {
        cout << "Enter a name: " << endl;
        cin >> string;

    }

    cout << string;
    return 0;
}

但是,在这种情况下,我认为每个字符串都被新的字符串替换。

< P>你尝试使用C++ STL的容器STD::vector?< /p> 这就行了

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    //this is a dynamically resizable container that works like an array
    //with O(1) index access complexity
    vector<string> dynamicArray; 

    string inputString;

    cin>>inputString; //"sara"
    dynamicArray.push_back(inputString); //add to the vector

    cin>>inputString; //"jack"
    dynamicArray.push_back(inputString); //add to the vector   

    cin>>inputString; //"john"
    dynamicArray.push_back(inputString); //add to the vector  

    //view the elements of the vector
    for(int i=0; i < dynamicArray.size(); i++){
        cout<<dynamicArray[i]<<endl;
    }
}

<> >,我回答的基础上,你不能使用普通的C++特性,比如STD::vector和STD::string。由于某种原因,你会被不幸的C++语言所困扰,C++是用C++ I/O来进行的。对于正确的C++答案,请参见XLR8的帖子。 首先要认识到的是,您需要一个二维字符数组。一维是因为字符串有多个字符,而第二维是因为需要多个字符串。所以

const int NUM_STRINGS = 3;
const int MAX_STRING_SIZE = 200;
char string_array[NUM_STRINGS][MAX_STRING_SIZE];
然后,您必须调整代码,以便说出您感兴趣的字符串数组中的哪个字符串

for (int i = 0; i < NUM_STRINGS; i++)
{
    cout << "Enter a name: " << endl;
    cin >> string_array[i];
}
最后,还需要一个循环来输出字符串数组

for (int i = 0; i < NUM_STRINGS; i++)
{
    cout << string_array[i] << '\n';
}

请发布您尝试过的内容,最好是a。标记c-strings是否意味着您要显式使用字符数组而不是std::string?还包括你到目前为止所做的工作的例子。将这些任务分开。任何一步都应该用任何中庸的C++教程来解释。请注意,Stack Overflow不想从头开始教授语言,请阅读并获得介绍;一旦找到空白,它就会停止,因此它无法处理像Sally Anne这样的名字。如果您需要此支持,.我可以将cin.getline用于二维数组吗?就像这个cin.getlinestring\u数组[I],MAX\u STRING\u SIZE;。但实际上,您使用的是带有一维数组的getine。字符串数组是二维的,但字符串数组[i]是一维的,可以在一维数组合法的任何地方使用。