我正在尝试解析此行

Completion_Time_Stamp = 2013-04-04@12:10:22(Eastern Daylight Time)

并将名称放在一个变量中,将值放在另一个变量中
token[0] = strtok(buf, " = "); // first token

if (token[0]) // zero if line is blank
{
  for (n = 1; n < 10; n++)
  {
    token[n] = strtok(0, " = "); // subsequent tokens
    if (!token[n]) break; // no more tokens
  }
}

输出:
token[0] = Completion_Time_Stamp
token[1] = 2013-04-04@12:10:22(Eastern
token[2] = Daylight
token[3] = Time)

但是我想要这样的东西:
token[0] = Completion_Time_Stamp
token[1] = 2013-04-04@12:10:22(Eastern Daylight Time)

我该如何实现?多个定界符??

最佳答案

为什么不使用 std::string 中已经存在的功能,例如使用 find substr

就像是:

std::string str = "Completion_Time_Stamp = 2013-04-04@12:10:22(Eastern Daylight Time)";

auto delim_pos = str.find('=');

std::string keyword = str.substr(0, delim_pos);
std::string data = str.substr(delim_pos);

注意:在制作子字符串时,可能必须调整定界符位置(在我的示例中为delim_pos)。

08-27 20:32
查看更多