Saltar al contenido

Manera correcta de vaciar un C-String

No dudes en compartir nuestra página y códigos en tus redes sociales, ayúdanos a aumentar esta comunidad.

Solución:

Depende de lo que entiendas por “vacío”. Si solo quieres una longitud cero stringentonces tu ejemplo funcionará.

Esto también funcionará:

buffer[0] = '';

Si desea poner a cero todo el contenido de la stringpuedes hacerlo de esta manera:

memset(buffer,0,strlen(buffer));

pero esto solo funcionará para poner a cero hasta el primer carácter NULL.

Si el string es un static arraypuedes usar:

memset(buffer,0,sizeof(buffer));

Otras dos formas son strcpy(str, ""); y string[0] = 0

Para eliminar realmente el contenido de la variable (en caso de que tenga un código sucio que no funcione correctamente con los fragmentos de código anteriores: P), use un ciclo como en el ejemplo a continuación.

#include 

...

int i=0;
for(i=0;i

En caso de que desee borrar una asignación dinámica array de caracteres desde el principio, puede usar una combinación de malloc() y memset() o - y esto es mucho más rápido - calloc() que hace lo mismo que malloc pero inicializando todo array con Nulo.

Por fin quiero que tengas en mente tu tiempo de ejecución. Aún más, si está manejando matrices enormes (6 dígitos y más), debe intentar establecer el primer valor en Nulo en lugar de ejecutar memset() a través de toda la cadena.

Puede parecer más sucio al principio, pero es mucho más rápido. Solo necesita prestar más atención a su código;)

Espero que esto haya sido útil para alguien;)

Comentarios y valoraciones del tutorial

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *