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
Muchas gracias
ResponderEliminarxd
ResponderEliminar