只是想知道是否有人可以帮助我解决这个问题,程序总是因某些原因而崩溃,我不知道为什么。我还是C ++的新手,是的。是的。
它应该做什么:
步骤4,5很简单但我真的不知道如何在步骤3中显示字符串的最后一个元素。
int x;
string n1,n2,n3,n4,n5,user;
string array[5]={n1,n2,n3,n4,n5};
cout<<"Enter 5 names: "<<endl;
getline(cin,n1);
getline(cin,n2);
getline(cin,n3);
getline(cin,n4);
getline(cin,n5);
cout<<endl;
for(x=0;x<5;x++)
{
int y=array[x].length();
cout<<array[x].substr(0,1)<<"\t"<<array[x].substr(y,1)<<endl;
}
cout<<endl;
cout<<"Enter sentence for string: "<<endl;
getline(cin,user);
cout<<user<<endl;
system("pause");
return 0;
答案 0 :(得分:1)
与java不同,以下内容创建了5个不同的std :: string副本。因此,分配给n1不会影响数组[0]
string n1,n2,n3,n4,n5,user;
string array[5]={n1,n2,n3,n4,n5};
完成你所追求的“正确”方式就像是
std::vector<std::string> array(5);
std::cout << "Enter 5 names: " << std::endl;
for(std::size_t x=0;x<array.size();x++) {
std::getline(std::cin, array[i]);
}
我已经换出了一个矢量的原始数组,几乎在所有情况下都应优先于数组。