如何从用户接收多个字符串并将这些字符串添加到C++中的数组中? 我是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 =
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]是一维的,可以在一维数组合法的任何地方使用。