C++ 字符串向量程序

C++ 字符串向量程序,c++,string,vector,C++,String,Vector,我创建了一个程序,要求用户输入5个名称,并记录到字符串向量中。之后,程序应该抓取每个名字的首字母和末字母并输出它们。我的程序编译得很好,但是在输入名称后,我没有从程序中得到任何输出 有谁能帮我纠正这个问题,以便打印输入的每个姓名的第一个和最后一个字符 #include <iostream> #include <algorithm> #include <vector> #include <string> using namespace std;

我创建了一个程序,要求用户输入5个名称,并记录到字符串向量中。之后,程序应该抓取每个名字的首字母和末字母并输出它们。我的程序编译得很好,但是在输入名称后,我没有从程序中得到任何输出

有谁能帮我纠正这个问题,以便打印输入的每个姓名的第一个和最后一个字符

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

using namespace std;

int main() 
{
 vector<string> names;
 char first_letter;
 char last_letter;
 string name;
 int n = 0;

 for (int i =0; i < 5; i++)
 {
  cout << " Please enter a name: ";
  cin >> name;
  names.push_back(name);
 }

 if ( !names[n].empty() )
 {
  first_letter = *names[n].begin();
  last_letter = *names[n].rbegin();
  cout << first_letter << " " << last_letter << endl;
  n++;
 }

 return 0;
}
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
载体名称;
字符首字母;
最后一个字母;
字符串名;
int n=0;
对于(int i=0;i<5;i++)
{
姓名;
名称。推回(名称);
}
如果(!names[n].empty())
{
第一个字母=*名称[n].begin();
最后一个字母=*名称[n].rbegin();

cout您已将其作为if语句输入。请将其更改为while循环

while ( !names[n].empty() )
 {
  first_letter = *names[n].begin();
  last_letter = *names[n].rbegin();
  std::cout << first_letter << " " << last_letter << endl;
  n++;
 }
while(!names[n].empty())
{
第一个字母=*名称[n].begin();
最后一个字母=*名称[n].rbegin();
std::cout
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
载体名称;
字符首字母;
最后一个字母;
字符串名;
int n=0;
对于(int i=0;i<5;i++)
{
姓名;
名称。推回(名称);
}
向量::迭代器itr=names.begin();
对于(;itr!=names.end();itr++)
{
第一个字母=*itr[n].begin();
最后一个字母=*itr[n].rbegin();

cout
矢量名称(23);
以23个空字符串开始,然后在后面再推5个字符串(总共28个),然后输出第一个字符串(仍然是空的)。建议取出
(23)
,还需要确保不超过矢量中的名称数
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

using namespace std;

int main() 
{
 vector<string> names;
 char first_letter;
 char last_letter;
 string name;
 int n = 0;

 for (int i =0; i < 5; i++)
 {
  cout << " Please enter a name: ";
  cin >> name;
  names.push_back(name);
 }

 vector<string>::iterator itr = names.begin();
 for(;itr!=names.end();itr++)
{

  first_letter = *itr[n].begin();
  last_letter = *itr[n].rbegin();
  cout << first_letter << " " << last_letter << endl;


}
 return 0;
}