Algo básico, pero me falla(espacios)
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?
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?
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
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
