簡體   English   中英

如何刪除字符串中的單個字符並在字符串中使用遞歸

[英]How do I delete a single character in a string and use recursion in a string

我不確定如何刪除字符串中的單個字符,因為根據我的理解,當我使用 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;
}
void ObliterateString(string arg) {
  if (arg.empty())
    return;
  random = rand() % arg.length(); //Get a random number that is between 0 and the length of the string
  arg.erase(random, 1);
  cout << arg << endl;
  ObliterateString(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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM