usa que para c string strcpy

c string para que se usa



Forma correcta de vaciar un C-String (4)

He estado trabajando en un proyecto en C que me obliga a jugar mucho con cadenas. Normalmente, programo en C ++, así que esto es un poco diferente a solo decir string.empty ().

Me pregunto cuál sería la forma correcta de vaciar una cadena en C. ¿Sería esto?

buffer[80] = "Hello World!/n"; // ... strcpy(buffer, "");


Depende de lo que quieres decir con vaciar. Si solo quieres una cadena vacía, podrías hacer

buffer[0] = 0;

Si desea configurar cada elemento a cero, haga

memset(buffer, 0, 80);


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

Para eliminar realmente los contenidos de las Variables (en caso de que tenga un código sucio que no funciona correctamente con los fragmentos de código anteriores: P) use un ciclo como el del siguiente ejemplo.

#include <string.h> ... int i=0; for(i=0;i<strlen(string);i++) { string[i] = 0; }

En caso de que desee borrar una matriz de caracteres asignada dinámicamente 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 toda la matriz con nulo

Por fin quiero que tengas tu tiempo de ejecución en mente. Aún más, si está manejando matrices enormes (de 6 o más dígitos), 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 cualquiera;)


necesita el nombre de la cadena y su longitud pondrá a cero todos los caracteres que otros métodos puedan detener en el primer cero que encuentren

void strClear(char p[],u8 len){u8 i=0; if(len){while(i<len){p[i]=0;i++;}} }


Depende de lo que quiere decir con "vacío". Si solo quieres una cadena de longitud cero, entonces tu ejemplo funcionará.

Esto también funcionará:

buffer[0] = ''/0'';

Si quiere poner a cero todo el contenido de la cadena, puede hacerlo de esta manera:

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

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

Si la cadena es una matriz estática, puede usar:

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