我不确定错误在哪里。我正在尝试在字符串中找到第一个重复的单词,其中分隔符是空格,制表符,逗号,冒号,分号,短划线和句点。
有人看到我确定是一个明显的错误吗?
{{1}}
答案 0 :(得分:0)
你的问题在别的地方。也许在调试器中检查输入字符串并查看传递的内容。
测试程序(来自链接):
#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;
}