Autor Tema: Como borrar un String?  (Leído 2721 veces)

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

Desconectado gfp

  • PIC18
  • ****
  • Mensajes: 274
Como borrar un String?
« en: 07 de Febrero de 2006, 12:03:00 »
Hola a todos, tengo definido el siguiente string:

char    TramaX[40];

pero necesito borrar las 40 posiciones, como lo hago?

Por el momento se me ocurre asi:

strcpy(TramaX,"                                        ");

(en medio de las comillas existen 40 espacios en blanco, pero no se aprecian).

alguien sabe otra forma de hacerlo?

gfp :-)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Como borrar un String?
« Respuesta #1 en: 07 de Febrero de 2006, 12:46:00 »
Con un bucle for:

nombre_cadena=""

PD. No le dá la gana de sacar los corchetes. Ahora, quitando los codigos de mier..@!

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5552
    • Picmania by Redraven
RE: Como borrar un String?
« Respuesta #2 en: 07 de Febrero de 2006, 13:10:00 »
Te pego un trozo de código de mi Ejemplito 16F876A: Recibiendo del RS232 sobre un Buffer y procesandolo posteriormente que imagino hace una cosa parecida a la que tú planteas pero sobre el string cbuff

Codigo:


...
// CONSTANTES                        ////////////////////////////////////////////////
int const lenbuff=32;                // Longitud de buffer, Ajustar
                                     // a lo que desees (o te sea posible)

// VARIABLES EN RAM                  ////////////////////////////////////////////////
char cbuff[lenbuff];                 // Buffer
int  xbuff=0x00;                     // Índice: siguiente char en cbuff
...

// Declaración de Funciones          ////////////////////////////////////////////////
void inicbuff(void);                 // Borra buffer

void inicbuff(void){                 // Inicia a cbuff -------------------
   int i;
   for(i=0;i<lenbuff;i++){           // Bucle que pone a 0 todos los
      cbuff[ i ]=0x00;               // caracteres en el buffer
   }
   xbuff=0x00;                       // Inicializo el indice de siguiente
                                     // caracter
}





Que es una implementación de lo que el maestro Pocher te ha posteado en el mensaje anterior a éste. A esta función inicbuff() la llamo cada vez que debo asegurarme que el buffer de recepción está completamente limpio, que es cada vez que termino de procesar lo recibido.

Espero que te sirva.
 
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado gfp

  • PIC18
  • ****
  • Mensajes: 274
RE: Como borrar un String?
« Respuesta #3 en: 07 de Febrero de 2006, 13:59:00 »
Gracias señores por su aporte, es justo lo que necesitaba.

gfp Sonrisa

Desconectado lovando

  • PIC16
  • ***
  • Mensajes: 193
RE: Como borrar un String?
« Respuesta #4 en: 07 de Febrero de 2006, 20:38:00 »
En mis programas de comunicacion con modems uso lo siguiente:


void borrar_array( char a[], int len) {
   int i=0;
   for(i=0;i<len;i++)   {
   a(i)="";
   }
}


La función anterior borra un array de longitud len...

Si por ejemplo, usando #int_rda  recibo un string, y lo grabo en un buffer_modem[max_buffer_len], depues de procesar la info, al string se debe aplicar la funcion de borrar_array...len es un entero que se incrementa segun la cantidad de caracteres recibidos....

Ejemplo:


fprintf(modem,"AT+CSQ"Giño;
   delay_ms(500);                  //Espera respuesta del modem.
//...procesar la info....

borrar_array(buffer_modem,len);   //Borra el contenido del buffer
   len=0;                              // Resetea indice del buffer_modem
                                                       // para poder almacenar otro string




el indice o contador del buffer debe ser puesto a 0 para que el proximo string a recibir comience a ser almacenado en la primera posicion del buffer_modem...

Saludos


 

Desconectado gfp

  • PIC18
  • ****
  • Mensajes: 274
RE: Como borrar un String?
« Respuesta #5 en: 08 de Febrero de 2006, 08:52:00 »
Magnificas respuestas, gracias a todos por el aporte.

gfp Sonrisa

Desconectado lovando

  • PIC16
  • ***
  • Mensajes: 193
RE: Como borrar un String?
« Respuesta #6 en: 08 de Febrero de 2006, 13:35:00 »
Aclarar que para borrar un string hay que poner el caracter NULL o 0, puesto que C acepta como fin de un string a ese caracter......es algo que no habiamos dicho....por ejemplo, gets() obtiene un string hasta que encuentra el NULL o 0. Sí que llenando todas las posiciones con ese valor nos aseguramos que el array está limpio...

Saludos