gpt4 book ai didi

c++ - 打印字符串数组的第一个/最后一个元素时出现问题

转载 作者:行者123 更新时间:2023-11-28 07:44:30 29 4
gpt4 key购买 nike

只是想知道是否有人可以帮助我解决我遇到的这个问题,该程序总是由于某种原因而崩溃,我不确定为什么。我还是 C++ 的新手,所以,是的。

它应该做什么:

  1. 创建一个包含 5 个可能元素的字符串数组。
  2. 从用户那里获取 5 个名字(名字和姓氏)
  3. 打印字符串数组的第一个和最后一个元素
  4. 创建一个字符串并让用户为该字符串分配一个句子。
  5. 打印(4)中的字符串

第 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;

最佳答案

与 say java 不同,下面的代码创建了 5 个不同的 std::string 拷贝。所以分配给 n1 不会影响 array[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]);
}

我已经将原始数组替换为 vector ,在几乎所有情况下, vector 都比数组更受欢迎。

http://en.cppreference.com/w/cpp/container/vector

关于c++ - 打印字符串数组的第一个/最后一个元素时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15163067/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com