在变量中解析字符串并将它们存储到新变量中

时间:2014-01-22 04:08:21

标签: c++ parsing

我需要解析存储在变量中的以下内容,并仅提取名称。这些名称应放在一个新变量中(全部由(。)分隔)。有什么想法吗?

Name : Mike Anderson\n
Age : 43\n
Name : Andie Jameson\n
Age : 35\n

预期输出应为内容为Mike Anderson.Andie Jameson

的变量

谢谢。

1 个答案:

答案 0 :(得分:0)

您的情况会有很多有用的方法。 这段代码只是其中之一。我使用了std::istringstreamstring::find()

int main()
{
  //Originally, each data is from your source.
  //but, this is just sample.
  std::istringstream input;
  input.str("Name : Mike Anderson\nAge : 43\nName : Andie Jameson\nAge : 35\n");

  //to find pattern
  std::string name_pattern = "Name : ";

  std::size_t found = std::string::npos;
 for (std::string line; std::getline(input, line); ) {
    found = line.find(name_pattern);
    if (found!=std::string::npos)
    {
        //write on file for 'directory'
        std::string only_name(line, found + name_pattern.length() );
        std::cout << "\nName : " << only_name;

        continue;
    }
  }

  getchar();
}

此代码将在下面打印,如

enter image description here