我不确定如何删除字符串中的单个字符,因为从我的理解中使用str.erase(x,y)时,它将删除从“x”到“y”的所有内容。但是,我只想删除“x”处的一个字符。
我还需要对这个问题使用递归。
我需要从字符串中删除随机字符并输出它,并一直这样做直到字符串为空。
string ObliterateString(string arg)
{
int length = arg.length();
int random = 0;
while(length > 0)
{
if(length <= 1)
{
return ObliterateString("");
}
else{
random = rand() % length; //Get a random number that is between 0 and the length of the string
arg.erase(random,random);
cout << arg << endl;
}
length--;
}
return arg;
}
最佳答案
递归例程应该在没有while循环的情况下进行处理:尝试以下操作:
string ObliterateString(string arg)
{
int length = arg.length();
if (length <= 1)
{
return "";
}
else
{
int random;
random = rand() % length;
arg.erase(random, 1);
cout << arg << endl;
arg = ObliterateString(arg);
}
return arg;
}
关于c++ - 如何删除字符串中的单个字符并在字符串中使用递归,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55584152/