如何拆分字符串和int值

时间:2017-11-10 14:48:14

标签: c++ file-handling getline

我有这种类型的文件,直到每个;

读取行

例如,从这一行:

[
Armenia >> Azerbaijan: 787 km; Georgia: 164 km; Iran: 35 km; Turkey: 268 km; Nagorno-Karabakh Republic;
]

Armenia >> Azerbaijan: 787 km;  then  Georgia: 164 km; upto Nagorno-Karabakh Republic;

如何拆分字符串?即:亚美尼亚和阿塞拜疆以及int值,即787

SCREENSHOT OF FILE

1 个答案:

答案 0 :(得分:0)

如果您的文字已包含在std::string变量中,则可以使用find方法和substr方法提取文字:

std::string text; // Text line read from file.
std::string::size_type position = text.find(" >> ");
std::string country;
std::string city;
if (position != std::string::npos)
{
  country = text.substr(1, position - 1);
  // Skip over " >> ";
  position += 4;
  std::string::size_type  position2 = text.find(";", position);
  if (position2 != std::string::npos)
  {
    city = text.substr(position, position2 - position);
  }
}

您还可以使用find_first_not_of()跳过空格并提取数字。接下来,有许多方法可以将数字的文本表示转换为内部表示(例如stoi)。

还有更多的可能性,我只展示了一个。