[C con Clase] duda con strtok

Steven Richard Davidson stevenrichard.davidson en gmail.com
Mar Dic 11 23:01:43 CET 2007


Hola Leonel,

On Dec 11, 2007 7:26 PM, Leonel Florín Sellés
<leonel06033 en cfg.jovenclub.cu> wrote:
>
> amigos necesito que me digan una forma en la que pueda dividir y
> extarer los token de una cadena en forma inversa, utilizando la
> función strtok que esta en la biblioteca <string.h>.
>

Una forma puede ser usando 'strtok()' para dividir la cadena, para
luego agregar cada puntero retornado a una pila previamente
implementada. Esto sería algo así,

Pila pila;
inicializarPila( &pila );
...
aux = strtok( szCadena, szSeparadores );
while( !aux )
{
  empujarPila( &pila, aux );
  aux = strtok( 0, szSeparadores );
}

Si no quieres implementar una pila, entonces puedes ir agregando las
cadenas a una cola o simplemente a un array. Eso sí, a la hora de
tratar este array, empezaríamos desde el último índice para dar el
efecto de ir hacia "detrás". Por ejemplo,

char *pLista[100] = { 0 };
unsigned long nCant = 0;
...
aux = strtok( szCadena, szSeparadores );
while( !aux )
{
  pLista[nCant++] = aux;
  aux = strtok( 0, szSeparadores );
}

La otra solución sería implementar tu propia función que se base en
'strtok()' pero personalizada para hacer lo que propones.


Espero que esto te sirva.

Steven




Más información sobre la lista de distribución Cconclase