C/Visual C - La cadena vacía en C???

 
Vista:

La cadena vacía en C???

Publicado por Lalo (11 intervenciones) el 22/05/2002 18:29:00
Quiero asignarle a una cadena de caracters la cadena vacía.
¿Se puede hacer de cualquiera de estas formas? ¿Hay deferencias?
¿Son todas correctas?

char a[5];
a=""; //Primera forma
*a='\0'; //Segunda forma
strcpy(a,""); //Tercera forma
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:La cadena vacía en C???

Publicado por Malandrin (29 intervenciones) el 22/05/2002 19:31:29
lo más común -creo yo- pa iniciar una cadena es con cadena[0] ='\0'; (tu segunda opción), con esto solo dejas el primer caracter a vacio, el resto contendrá basura de la memoria, para borrar TODA la cadena puedes hacer un memset(&cadena, 0, sizeof(cadena));

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:La cadena vacía en C???

Publicado por chuidiang (677 intervenciones) el 22/05/2002 22:39:41
La primera forma te dará error al compilar. No se pueden copiar cadenas con el =

La segunda forma es equivalente a a[0]=0, a[0]='\0' y *a = 0 Son las formas más rápidas de iniciar la cadena y las más habituales.

La tercera forma es válida, pero menos eficiente (en vez de una simple asignación como la anterior, llama a una función preparada para copiar cadenas completas).

Si quieres quitar guarrería de detrás del final de cadena, aunque no suele ser necesario, haz como te dijo Malandrin.

Se bueno.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar