[C con Clase] Mascara para sscanf

Steven Richard Davidson stevenrichard.davidson en gmail.com
Jue Ene 10 14:17:59 CET 2008


Hola Adrián,

On Jan 10, 2008 1:21 PM, Adrian Ferreres Esteller <raro82 en hotmail.com> wrote:
>
>  Hola lista:
>
>   Tengo un problema al leer cadenas con sscanf. Tengo un cadena de
> caracteres que tiene esta forma:
>
>
> hasaslfjkalfjaldfjalñfkaj?\nañlfjkañlfjañlfjafkljasfkl?\nafkljañlfjañlfjafdfljañlfjadflaj?\n
>
> Y tengo que separarlas por el interrogante. Lo que primero pense es utilizar
> sscanf de la siguiente manera:

Supongo que podrías usar 'sscanf()', pero sinceramente es mucho más
sencillo usar 'strtok()' que sirve precisamente para esto: separar
subcadenas en una cadena según criterios basados en caracteres a
buscar. Por ejemplo,

char *ptr = strtok( szCadena, "?\n" );
Hacer_Algo_Con( ptr );

while( ptr = strtok( 0, "?\n" ) )
  Hacer_Algo_Con( ptr );

La función 'strtok()' realmente sustituye todos los caracteres
encontrados por caracteres nulos. De esta manera, al final,
obtendremos lo siguiente:

szCadena <-- hasaslfjkalfjaldfjalñfkaj\0\0añlfjkañlfjañlfjafkljasfkl\0\0afkljañlfjañlfjafdfljañlfjadflaj\0\0

Puedes consultar esta función en nuestra referencia yendo a:
http://c.conclase.net/librerias/funcion.php?fun=strtok


Espero que esto te sirva.

Steven




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