【发布时间】:2022-01-26 21:03:18
【问题描述】:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
void rmvdupli(string s)
{
if (s.length() == 1)
{
cout << s;
return;
}
char c = s.at(0);
if (((s.substr(1)).find(c)) >= 0)
cout << "";
else
cout << c;
rmvdupli(s.substr(1));
}
int main()
{
cout << "Enter the string " << endl;
string s;
cin >> s;
rmvdupli(s);
return 0;
}
输出
输入字符串
ababcdc
c
代码有什么问题?看起来完全没问题,但没有答案!
【问题讨论】:
-
string::find返回一个无符号整数类型的值。它总是 >= 0;它在物理上是不可能的。 -
尝试较小的测试用例,例如空字符串、单个字符或两个字符(唯一或重复)。然后,在调试器中运行你的代码(尝试找到一个视频教程!)这应该很容易找到错误。
标签: c++ string recursion duplicates