Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/12/2013, 17:08
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 3 meses
Puntos: 10
Respuesta: Extraer palabras de un fichero de texto

Al final no he usado strtok en la función...y arreglado
Código C++:
Ver original
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5. void divideLinea(char*);
  6.  
  7. int main()
  8. {
  9.     char datos[]="\n\n$registro1#dato11#dato12#dato13$registro2#dato21#dato22largooooooooooo\nooooooooo#dato23#dato24\n$registro3#dato13##dato33";
  10.     int tam=strlen(datos);
  11.     //metodo cutre para quitar saltos de linea al principio y entre registros
  12.     for (int i=0; i<tam; i++)
  13.     {
  14.         if (datos[i]=='\n' && (datos[i+1]=='\n' || datos[i+1]=='$'))
  15.             datos[i]='$';
  16.     }
  17.     //fin del metodo cutre
  18.     char *p;
  19.     char token[]="$";
  20.  
  21.     p=strtok (datos,token);
  22.     while (p)
  23.     {
  24.         divideLinea(p);
  25.         p=strtok(0,token);
  26.     }
  27.     return 0;
  28. }
  29.  
  30. void divideLinea(char* linea)
  31. {
  32.     int i=0;
  33.     char *punt=linea;
  34.     cout<<"Linea a procesar: "<<linea<<endl;
  35.     while (linea[i]!='\0')
  36.     {
  37.         if (linea[i]=='#')
  38.         {
  39.             linea[i]='\0';
  40.             cout<<"dato: "<<punt<<endl;
  41.             punt=&linea[i+1];
  42.         }
  43.         i++;
  44.     }
  45.     cout<<"dato: "<<punt<<endl;
  46. }