conversión inválida de ‘const char *’ a ‘char’

Estoy tratando de reemplazar cierto personaje en una cadena con un espacio usando la siguiente línea de código:

str[i] = " "; 

¿Cómo puede darse cuenta de esto sin obtener el error en el título de la pregunta?

use comillas simples

 str [i] = '';

En C ++, el token “” es un literal de cadena que representa una matriz de dos caracteres: el valor de un espacio en el conjunto de caracteres (por ejemplo, el valor 32 en ascii) y un cero. Por otro lado, el token ” representa un solo carácter con el valor de un espacio (generalmente 32). Tenga en cuenta que en C, el token ” representa un número entero con el valor de un espacio. (En C, sizeof (”) == sizeof (int), mientras que en C ++, sizeof (”) == 1.)

Los literales de caracteres individuales se obtienen con comillas simples :

 str[i] = ' '; 

Un literal con comillas dobles es un literal de cadena completo (una matriz de caracteres terminada en nulo), pero solo está reemplazando un solo char .