Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Inicializar un string en c++. Buenas Prácticas

Estas en el tema de Inicializar un string en c++. Buenas Prácticas en el foro de C/C++ en Foros del Web. Que tal. ¡Còmo buenas prácticas de programación es bueno inicializar un string en c++? Y si es positiva la respuesta ¿a qué se inicializa? De ...
  #1 (permalink)  
Antiguo 05/11/2010, 23:30
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1
Antigüedad: 13 años, 5 meses
Puntos: 0
Inicializar un string en c++. Buenas Prácticas

Que tal.

¡Còmo buenas prácticas de programación es bueno inicializar un string en c++?

Y si es positiva la respuesta ¿a qué se inicializa?

De antemano muchas gracias.
  #2 (permalink)  
Antiguo 06/11/2010, 01:31
Avatar de gvite666  
Fecha de Ingreso: abril-2010
Mensajes: 65
Antigüedad: 14 años
Puntos: 4
Respuesta: Inicializar un string en c++. Buenas Prácticas

claro, siempre es bueno inicializar todo tipo de variables, esto se hace para no tener resultados no deseables.
Ejemplo, si pones algo asi:
Código C:
Ver original
  1. char string[20];
  2.     if(strlen(string)!=0)
  3.         string="perro";
  4.     printf("%s",string);
  5. //en este caso como no le hemos agregado nada al string pues no sabes que error pueda llegar a producir, en el mejor de los caso solo te mostrara "Basura", pero no puedes permitir que esto quiebre tu programa.
  6. Asi que simplemente puedes inicializarla asi
  7.       char string[20]="";
  8. //en donde simplemente le pones una cadena vacia.
Saludos.
__________________
No pienses si no vas a actuar.
  #3 (permalink)  
Antiguo 09/11/2010, 10:28
 
Fecha de Ingreso: octubre-2010
Ubicación: Edo. de México
Mensajes: 94
Antigüedad: 13 años, 6 meses
Puntos: 9
Respuesta: Inicializar un string en c++. Buenas Prácticas

Cita:
Iniciado por gvite666 Ver Mensaje
claro, siempre es bueno inicializar todo tipo de variables, esto se hace para no tener resultados no deseables.
Ejemplo, si pones algo asi:
Código C:
Ver original
  1. char string[20];
  2.     if(strlen(string)!=0)
  3.         string="perro";
  4.     printf("%s",string);
  5. //en este caso como no le hemos agregado nada al string pues no sabes que error pueda llegar a producir, en el mejor de los caso solo te mostrara "Basura", pero no puedes permitir que esto quiebre tu programa.
  6. Asi que simplemente puedes inicializarla asi
  7.       char string[20]="";
  8. //en donde simplemente le pones una cadena vacia.
Saludos.
No soy un experto en c++, pero si es que se trata a los *char de la misma forma en que se tratan en c, no es correcta tu asignacion.
Código:
string = "perro";
En realidad tendrias que hacer un strcpy.

Código:
strcpy(string, "perro");
Pero para inicializar todo un arreglo de chars es mejor el uso de funciones como bzero.

Código:
bzero((char *)&string, sizeof(string));
Esto colocara un 0 en todos los elementos del arreglo (0 en codigo ASCII es el caracter nulo, osea el famosisimo fin de cadena).

Saludos++;

Etiquetas: prácticas, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:05.