Como limpiar un arreglo de caracteres

#1
Hola como estan, he definido un arreglo de caracteres llamado PRINT_2, en el cual guardo algunos datos para luego enviarlos por el serial. Lo que pasa es que algunas veces lo que contiene el string no esta bien y no lo envio (comparando algunos caracteres del arreglo). Pero ademas quiero asegurarme que lo que hay en el arreglo se limpie cuando contenga algo que esta mal y es aqui cuando no he quedado pegado pues no se como limpiar el arrglo, con limpiar me refiero a dejarlo con espacios libres o sea ningun caracter. A continuacion el codigo:

static char PRINT_2[36]; //SE ESCRIBE EN EL ARCHIVO DE TEXTO 'MEDICION.TXT'

void CARACTER_2(){ //36 Caracteres

sprintf(PRINT_2,"%02u-%02u-%02u-%02u:%02u:%02u-%Lu-%Lu-%Lu-%Lu",dat2,mon2,yea2,hou2,min2,sec2,temp2,humed2,co22,luz2);
delay_ms(100);

if (PRINT_2[2]==0x2D && PRINT_2[5]==0x2D && PRINT_2[8]==0x2D && PRINT_2[11]==0x3A && PRINT_2[14]==0x3A && PRINT_2[17]==0x2D && PRINT_2[22]==0x2D)
{
lec_correcta=1;
}
else
{
lec_correcta=0;
// PRINT_2[] = BLANCO[36]; // Con esta linea me da un warning, el arrglo BLANCO es un arrglo de caracteres pero no tiene nada
// PRINT_2[] = {0}; // Con esta linea me da error
}

}

Alguna idea.....

Saludos

Franklin Barquero......
 

Dr. Zoidberg

Well-known-Papá Pitufo
#2
Algunas cosas importantes:
1. Tomá un libro sobre el lenguaje C y estudiá como se gestionan lo arreglos...en especial de caracteres, que a juzgar por lo que has posteado...tenés muy poca idea.
2. Borrar un arreglo de caracteres es muy simple: PRINT_2[0]='\0';
3. Esto PRINT_2[] = BLANCO[36]; y esto PRINT_2[] = {0}; es cualquier verdura! GOTO 1, incluyendo la conversión estática arreglo<->puntero
 
#3
Haber, no especificas el compilador pero una salida fácil es dentro de un FOR que baya de 0 al límite del arreglo, poniendo en cada paso algo así: PRINT_2[index] = 0; o '\0'.

saludos
 
#4
Gracias muchachos la idea era no hacer un for......
Uso CCS y hay una mejor forma de hacerlo..... A continuacion esta:

memset(PRINT_2,0,36);
 
#6
así parece ezavalla, mientras llenas algo al arreglo siempre pones al final un cero, cosa que serviria para cualquier trabajo con string... te ahorras algo de tiempo en el proceso ya que con for o memset hacen casi la misma cosa solo que la diferencia es una línea de código.
 
#7
Por alguna extraña razon hay ocasiones que por ejemplo PRINT_2 [34] guarda un valor y a la siguiente lectura lo sigue almacenando y me desconfigura todo los demas datos
 

Dr. Zoidberg

Well-known-Papá Pitufo
#9
Por alguna extraña razon hay ocasiones que por ejemplo PRINT_2 [34] guarda un valor y a la siguiente lectura lo sigue almacenando y me desconfigura todo los demas datos
Y que pretendés que suceda con ese valor...que se evapore? Si vos no cambiás el valor del lugar [34] entonces va a seguir ahí por siempre...
 
Arriba