Para que la salida sea la correcta, en la llamada a la función toupper esta linea:
De esta forma tu estas pasando en cada llamada a la función toupper el indice del caracter espacio, obteniendo asi resultados no deseados en la salida lo correcto seria
Un gusto volver a pasar aqui..
Saludos
Código (cpp) [Seleccionar]
frase[(i++)+1] = toupper(frase[i]);
De esta forma tu estas pasando en cada llamada a la función toupper el indice del caracter espacio, obteniendo asi resultados no deseados en la salida lo correcto seria
Código (cpp) [Seleccionar]
frase[(i++)+1] = toupper(frase[i+1]);
Un gusto volver a pasar aqui..
Saludos