【发布时间】:2012-07-13 06:02:02
【问题描述】:
您好,我有一个这样的字符串:
word1--tab--word2--tab--word3--tab--word4--tab--word5--tab--word6
我需要从字符串中提取第三个单词。我想在阅读第二个标签后逐个字符阅读并获取单词。但我想这是低效的。你能告诉我一个更具体的方法吗?
【问题讨论】:
您好,我有一个这样的字符串:
word1--tab--word2--tab--word3--tab--word4--tab--word5--tab--word6
我需要从字符串中提取第三个单词。我想在阅读第二个标签后逐个字符阅读并获取单词。但我想这是低效的。你能告诉我一个更具体的方法吗?
【问题讨论】:
std::string 具有返回索引的find 方法。你可以使用
find("--", lastFoundIndex + 1)
三次找到单词的开始索引,第四次找到结束索引,然后使用substr。
【讨论】:
\t)
假设“标签”是\t;
std::istringstream str(".....");
std::string temp, word;
str >> temp >> temp >> word;
【讨论】:
istringstream构造函数参数列表中(其中"....."在示例代码中),并且std >> temp >> temp >> word;有错字,应该是str而不是@ 987654327@。这会将第一个和第二个单词提取到temp,将第三个单词提取到word。