[C con Clase] Problema con toupper

Davidson, Steven srd4121 en njit.edu
Mar Sep 25 17:44:33 CEST 2012


Hola Marcelo,

2012/9/25 Marcelo <marcefont en gmail.com>:
> Muchas gracias Steven, voy a ir armando un borrador, de paso te comento que detecté otro error, ingresaba la cadena con "cin", luego de la primer o segunda prueba me di cuenta y lo cambié por gets()y funcionó de maravillas. Me cuesta aprender solo pero por suerte siempre recibo respuestas a mis dudas. Muchísimas gracias de nuevo.

No se aconseja el uso de 'gets()', ya que es peligrosa, aunque sea
estándar. Deberías usar 'fgets()' en su lugar. Sin embargo, como estás
usando C++, sugiero que uses la función miembro 'getline()'. Esto es,

char stApel[20];

cin.getline( stApel, 20 );


Ya puestos, también te aconsejo que definas constantes, especialmente
para las cantidades de elementos de un array. Esto es,

const int MAX_APELLIDO = 20;

int main()
{
  char stApel[MAX_APELLIDO];

  cin.getline( stApel, MAX_APELLIDO );
  ...
}

De esta forma, puedes cambiar el valor de la constante mientras
desarrollas tu programa, sin "tocar" todo el código fuente.
Adicionalmente, creas un programa descrito en términos generales, y
con nombres descriptivos creas un código fuente más legible y por
tanto menos propenso a cometer errores.


Espero que esto te sirva.

Steven




Más información sobre la lista de distribución Cconclase