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

Hola vosk:

Muchas gracias por la aclaración. Tienes toda la razón.
Si no te he respondido antes es porque me sigo peleando con lo que quiero hacer y con strtok. Incluso en estos días he tenido la osadía de responder a algunas dudas con cierta relación con lo mío

El caso es que no debo de entender bien el funcionamiento de strtok. Lo he mirado aqui:
http://support.microsoft.com/kb/51327/es

Exceptuando que en la versión Microsoft parece que se aceptan dos delimitadores, entiendo que la función se comporta igual.

Sin embargo, cuando tengo dos caracteres a cambiar seguidos,me deja uno de ellos.
Pongo un ejemplo:
Código C++:
Ver original
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     char frase[]={"La primera linea\n\nLa segunda linea\n\nLa tercera linea."};
  9.     char *p;
  10.     int i=0;
  11.     p=strtok (frase,"\n");
  12.     while (p!=0)
  13.     {
  14.        p=strtok(0,"\n");
  15.     }
  16.     while (frase[i]!='.')
  17.     {
  18.         if (frase[i]=='\n')
  19.         cout<<'$';
  20.         else
  21.         cout<<frase[i];
  22.         i++;
  23.     }
  24.     return 0;
  25. }

El primer "\n" lo reemplaza por "\0", como era de esperar, pero el segundo lo deja.
¿Puede ser que no tenga bien planteada la forma de uso?
Gracias!