miércoles, 24 de diciembre de 2014

Vaciar cadena en C


Para limpiar o vaciar la basura que pueda contener una cadena de tipo char en lenguaje C he utilizado la función memset. Debido a que intentaba concatenar continuamente valores y en determinado momento poner valores de tamaño menor; sin embargo, el resultado era que sobrescribía los caracteres pero quedaban los existentes anteriormente. Es decir, si antes estaba la cadena «cadena» y luego escribía un «uno», el resultado esperado era tener «uno», pero se obtiene «unoena». Lo solucioné al utilizar la función memset que sobrescribe los valores en memoria con el valor del segundo parámetro.

char varCadena[50];
...
memset(varCadena, 0, 50); //limpiar para que no lo una con la basura

Donde:
varCadena: es la variable de tipo char
0: el valor con el cual rellenar
50: la longitud de la cadena

No hay comentarios:

Publicar un comentario