【问题标题】:Reaching a specific word in a string到达字符串中的特定单词
【发布时间】:2012-07-13 06:02:02
【问题描述】:

您好,我有一个这样的字符串:

word1--tab--word2--tab--word3--tab--word4--tab--word5--tab--word6

我需要从字符串中提取第三个单词。我想在阅读第二个标签后逐个字符阅读并获取单词。但我想这是低效的。你能告诉我一个更具体的方法吗?

【问题讨论】:

    标签: c++ string


    【解决方案1】:

    std::string 具有返回索引的find 方法。你可以使用

     find("--", lastFoundIndex + 1)
    

    三次找到单词的开始索引,第四次找到结束索引,然后使用substr

    【讨论】:

    • 这绝对比我的方法更有效(如果“tab”不是\t
    【解决方案2】:

    假设“标签”是\t

    std::istringstream str(".....");
    std::string temp, word;
    
    str >> temp >> temp >> word;
    

    【讨论】:

    • 是选项卡是 \t 但我无法让你的代码工作.. 我应该在哪里写字符串? std >> temp >> temp >> word 是什么;做什么?
    • @bahadirtr 字符串应该在istringstream构造函数参数列表中(其中"....."在示例代码中),并且std >> temp >> temp >> word;有错字,应该是str而不是@ 987654327@。这会将第一个和第二个单词提取到temp,将第三个单词提取到word
    • std::istringstream str(string) 这一行给出了这个错误:变量 'std::istringstream str' 有初始化器但类型不完整
    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多