Zamień znak w łańcuchu na jakiś ciąg w miejscu


Chcę zastąpić znak w ciągu ciągiem. czy mogę to zrobić na miejscu? Ponieważ nowy ciąg ma długość większą niż oryginalny ciąg. Pytanie brzmi, czy mogę to zrobić przy użyciu dodatkowego bufora? na przykład

<code>void replaceChar(std::string &input, std::string replacementString, char charToReplace)
{
//some code here. No additional buffer
}

void main(){

  std::string input = "I am posting a comment on LinkedIn";
  std::string replacementString = "pppp";
  char charToReplace = 'o';
  replaceChar(input, replacementString, charToReplace);
}
</code>

Chcę tylko strategii (algorytmu). dobrze by było, gdyby algorytm był zaprojektowany z myślą o pewnym języku, który nie będzie dynamicznie zwiększał ani zmniejszał długości łańcucha po zainicjowaniu, jak c ++

questionAnswers(4)

yourAnswerToTheQuestion