我正在尝试解析此行
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
)。