• Domingo 8 de Septiembre de 2024, 01:52

Autor Tema:  Ayuda Con Algo Facil Que No Soy Capaz De Hacer  (Leído 1432 veces)

vagazo

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Ayuda Con Algo Facil Que No Soy Capaz De Hacer
« en: Sábado 11 de Agosto de 2007, 16:40 »
0
Imaginad que en C tenemos una cadena del tipo -LN, donde L es cualquier letra y N es cualquier número de cualquier longitud. Un par de ejemplos serían:
   -t301
   -d20874

  ¿Cómo conseguiría separar el -L del N de manera que en el primer ejemplo tuviera el -t por un lado y el 301 por otro y en el segundo ejemplo obtuviera dos cadenas que serían -d y 20874?

   Aparte del hecho de separlos, está también que no se sabe la longitud del número así que no se puede coger un numero de caracteres fijos a partir de la tercera posición, justo después de la letra, aunque eso es menos problemático.
 
                                                                                                                        Muchas gracias.

bob esponja

  • Miembro MUY activo
  • ***
  • Mensajes: 411
    • Ver Perfil
    • http://marianoguerra.blogspot.com
Re: Ayuda Con Algo Facil Que No Soy Capaz De Hacer
« Respuesta #1 en: Sábado 11 de Agosto de 2007, 21:00 »
0
queres parsear argumentos de la linea de comando?
hay librerias para eso

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Ayuda Con Algo Facil Que No Soy Capaz De Hacer
« Respuesta #2 en: Sábado 11 de Agosto de 2007, 22:02 »
0
Teniendo la cadena, con strlen puedes saber la longitud del número restando las dos primeras posiciones.

Código: Text
  1.  
  2. char cadena[] = "-t12345";
  3.  
  4. int longitudN = strlen( cadena ) - 2;
  5.  
  6.  
La imaginación es el límite.
Hardware & Software | Mexchip

vagazo

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Ayuda Con Algo Facil Que No Soy Capaz De Hacer
« Respuesta #3 en: Domingo 12 de Agosto de 2007, 17:50 »
0
Ya lo conseguí hacer. Resulta que como las dos primeras posiciones de la cadena son un guión y una letra, sabes que en la tercera comienza el número, asi que si tienes por ejemplo esta cadena:

       cadena = "-f789123"

  Haciendo esto:   atoi (&(cadena[2]))  te pilla el 789123 entero y te lo convierte en numero.

  Gracias por vuestras respuestas.