字符串向量的程序

Program for a Vector of Strings

本文关键字:程序 向量 字符串      更新时间:2023-10-16

我创建了一个程序,要求用户输入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;
}
#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;
}

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

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