Algo básico, pero me falla(espacios)

Caiman
10 de Julio del 2004
Por que el programa comete errores cuando leo una cadena asi:

Oscar Perez

pero no me causa problemas con:

Oscar_Perez

por que con el espacio si me da problemas?
Uso el c++, los valores la almacenos en variables dinámicas como estáticas y en ambas me sale el problema, uso scanf y gets y no resuelvo nada.
Cómo soluciono esta trivialidad?

noel solw
10 de Julio del 2004
Este es un problema conocido.
Me llama la atencion lo que dices que el gets no funciona.
Te mando un breve programa como ejemplo:

// program cadenas.cpp

#include <iomanip.h>
#include <iomanip.h>
#include <ctype.h>
#include <string.h>
#include <stdio.h> // para gets() - con cin la cadena se separa en los espacios blancos

void main()
{
char str[80];
cout << setw(30) << "entra una cadena : ";
gets(str);
cout << setw(30) << "cadena original : " << str << endl;
cout << setw(30) << "cadena transformada : ";
for(int i = strlen(str)-1;i >= 0;i--)
cout << char(toupper(str[i]));
cout << endl;
} // MAIN