Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

06/10/2010 #1


Como limpiar un arreglo de caracteres
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,co 22,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......
06/10/2010 #2

Avatar de Dr. Zoidberg

Respuesta: Como limpiar un arreglo de caracteres
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
06/10/2010 #3

Avatar de ByAxel

Respuesta: Como limpiar un arreglo de caracteres
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
06/10/2010 #4


Respuesta: Como limpiar un arreglo de caracteres
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);
06/10/2010 #5

Avatar de Dr. Zoidberg

Respuesta: Como limpiar un arreglo de caracteres
frankcr dijo: Ver Mensaje
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);
Y para que querés poner TODO el arreglo en cero si lo estás usando como un string? Con el primer cero que encuentre...listo!
06/10/2010 #6

Avatar de ByAxel

Respuesta: Como limpiar un arreglo de caracteres
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.
06/10/2010 #7


Respuesta: Como limpiar un arreglo de caracteres
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
06/10/2010 #8

Avatar de ByAxel

Respuesta: Como limpiar un arreglo de caracteres
Otro bug!!! va! CCS siempre con eso, pero habría que ver como está el programa completo...
06/10/2010 #9

Avatar de Dr. Zoidberg

Respuesta: Como limpiar un arreglo de caracteres
frankcr dijo: Ver Mensaje
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...
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.