繁体   English   中英

尝试使用getline从一行提取三个名称

[英]Trying to extract three names from one line using getline

嗨,我正在学习C ++,我试图从一行提取三个名称(第一,中间,最后)。

cout<< "Please enter your full name" << endl;
  getline(cin, first_name, ' ');
  getline(cin, midLast_name);

我将中间名和姓氏作为变量,然后将它们分开。 我需要能够接受一个空格作为中间名,所以这就是我正在做的事情。 但是,在我的条件语句中,即使有一个空格,代码也找不到空格。 有任何想法吗?

if (midLast_name.find(" ") == true)
{
    first_space = midLast_name.find(" ");
    middle_name = midLast_name.substr(0,first_space);
    last_space = midLast_name.rfind(" ");
    last_name = midLast_name.substr(midLast_name.rfind(" ") + 1, full_name.length());

 } 

string::find(...)返回位置或string::npos如果未找到),因此您的代码应与npos进行比较,而不是==true

size_t firstspace = midLast_name.find(" ");
if (firstspace != string::npos) {
   middle_name= midLast_name.substr(0, firstspace);
   ... 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM