首先在一个句子中重复一句话

时间:2016-07-27 18:05:15

标签: c++11

我不确定错误在哪里。我正在尝试在字符串中找到第一个重复的单词,其中分隔符是空格,制表符,逗号,冒号,分号,短划线和句点。

有人看到我确定是一个明显的错误吗?

{{1}}

1 个答案:

答案 0 :(得分:0)

根据https://ideone.com/sbsUeI

,您在此处撰写的代码运行良好

你的问题在别的地方。也许在调试器中检查输入字符串并查看传递的内容。

测试程序(来自链接):

#include <iostream>
#include <string>
#include <set>

using namespace std;

std::string repeat(std::string str) {
  std::set<std::string> seen;

  str.insert(str.end(), ' ');

  std::string tmp;
  for (auto const& s : str) {
    if (s != ' '&&
        s != '\t'&&
        s != '.'&&
        s != ','&&
        s !=':'&&
        s != ';'&&
        s != '-')
      tmp += s;
    else {
      if (seen.find(tmp) != seen.end())
        return tmp;
      else {
        seen.insert(tmp);
        tmp.clear();
      }
    }
  }

  return "no repeats";
}

int main() {
    std::cout << repeat("cat dog cat man"); // prints "cat"
    return 0;
}