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

4 comentarios:

  1. Gracias compadre, pensé que no funcionaria ya que se estaba llenando de 0's una cadena tipo char, pero sin duda si que funciona, aun no entiendo porque con 0's pero esta bien (soy medio nuevo así que no te me esponjes si esto es algo básico y no lo se xD), porciento entonces esto también funcionaria con un arreglo tipo int?, lo probare luego

    ResponderEliminar
  2. Estudiante de ing. informática18 de noviembre de 2023, 1:32

    gracias!

    ResponderEliminar