如何从用户那里接收多个字符串并将这些字符串添加到 c++ 中的数组中?

How to receive multiple strings from a user and add those string to an array in c++?

本文关键字:字符串 添加 c++ 数组 串并 那里 用户 字符      更新时间:2023-10-16

我是 c++ 的初学者,我有一个问题,

我想从用户那里接收多个字符串,并将每个字符串添加到 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;
}

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

您是否尝试过使用 c++ stl 的容器 std::vector?

这样就行了。

#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::vectorstd::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';
}