Intentando reemplazar palabras en una cadena

Estoy tratando de tomar las palabras de la salida y encontrar cualquier palabra con la letra Q en ella. Si la palabra lo hace, debe ser reemplazada por la palabra "malo". Después de eso, estoy tratando de agregar cada palabra a output2. Estoy teniendo problemas para hacer esto. El error que obtengo cuando compilo es:

Conversión no válida de 'const char *' a 'char' [-fpermissive]

#include <iostream>
#include <string>
#include <cstdlib>
#include <sstream>
using namespace std;
string manipulate(string x);
int main(int argc, char* argv[])
{
string input, temp, output, output2, test, test2;
int b;
cout << "Enter a string: ";
getline(cin, input);
istringstream iss(input);
while (iss >> test)
{  
      if(test.length() != 3)
      {
        test.append(" ", 1);   
        output.append(test);
      }
}

istringstream iss2(output);
while (iss2 >> test2)
{
      for(int i = 0; i<test2.length(); i++) 
   {
     switch(test2[i])
      {
           case 'q':
           test2[1]="bad";
           output2.append(test2);
           break;
      }

   }
}
cout << "Your orginal string was: " << input << endl;
cout << "Your new string is: " << output2 << endl;
cin.get();
return 0;
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta