Autor Tema: Como limpiar un arreglo de caracteres  (Leído 2939 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado frankcr

  • PIC10
  • *
  • Mensajes: 36
Como limpiar un arreglo de caracteres
« en: 06 de Octubre de 2010, 14:47:59 »
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
   }

}



Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Como limpiar un arreglo de caracteres
« Respuesta #1 en: 06 de Octubre de 2010, 14:51:47 »
La función más eficiente es:

memset(PRINT_2,0,36);


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado frankcr

  • PIC10
  • *
  • Mensajes: 36
Re: Como limpiar un arreglo de caracteres
« Respuesta #2 en: 06 de Octubre de 2010, 15:07:08 »
Gracias Suky voy a probar......

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Como limpiar un arreglo de caracteres
« Respuesta #3 en: 06 de Octubre de 2010, 15:32:51 »
Hola, para no tener que hardcodear el tamaño del array podes usar el memset asi

Código: [Seleccionar]
memset(PRINT_2,0,sizeof(PRINT_2));

De esta manera si cambias el tamaño del array no tenes que volver a tocar el memset.

Saludos !

Desconectado frankcr

  • PIC10
  • *
  • Mensajes: 36
Re: Como limpiar un arreglo de caracteres
« Respuesta #4 en: 06 de Octubre de 2010, 15:47:38 »
Gracias por la observacion  fijo tendre que cambiar el tamaño.....

Saludos


 

anything