Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: veravluis en 19 Marzo 2017, 00:18 am



Título: Separa char para usar en otra variable
Publicado por: veravluis en 19 Marzo 2017, 00:18 am
// Estoy separando la variable (char) nombreEdad y funciona bien
// El resultado por pantalla es :
// Luis
// 20
// Me gustaría saber como podría poner el nombre Luis en una variable char diferente, y el numero 20 en una variable de tipo int, espero me entiendan y puedan ayudar gracias.

Código
  1. char nombreEdad[] = "Luis 20";
  2. char* a;
  3.  
  4. a = strtok(nombre, " ");
  5. while(a != NULL) {
  6.  
  7.  
  8. cout << a << endl;
  9. a = strtok(NULL, " ");
  10.  
  11. }
  12.  


Título: Re: Separa char para usar en otra variable
Publicado por: MAFUS en 19 Marzo 2017, 00:23 am
Si sabes que la cadena a separar siempre tiene el mismo formato puedes usar sscanf.


Título: Re: Separa char para usar en otra variable
Publicado por: veravluis en 19 Marzo 2017, 00:32 am
Si sabes que la cadena a separar siempre tiene el mismo formato puedes usar sscanf.

Citar
No entiendo lo que me quieres decir.
scanf ó cin son para pedir datos a los usuarios pero yo no necesito pedirselos ya que ya los tengo solo deseo separarlos y luego usarlos en variables diferentes.


Título: Re: Separa char para usar en otra variable
Publicado por: MAFUS en 19 Marzo 2017, 00:44 am
Deberías conocer la biblioteca estándar. Así verías que muchas de las cosas ya están hechas.

sscanf: http://c.conclase.net/librerias/?ansifun=sscanf


Título: Re: Separa char para usar en otra variable
Publicado por: veravluis en 19 Marzo 2017, 01:40 am
Deberías conocer la biblioteca estándar. Así verías que muchas de las cosas ya están hechas.

sscanf: http://c.conclase.net/librerias/?ansifun=sscanf

Citar
Si puedes hacer un ejemplo con lo que yo publique te lo agradecería


Título: Re: Separa char para usar en otra variable
Publicado por: MAFUS en 19 Marzo 2017, 02:12 am
Un ejemplo con tus datos:
Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. char nombreEdad[] = "Luis 20";
  5.    char nombre[20];
  6.    int edad;
  7.  
  8.    sscanf(nombreEdad, "%s %i", nombre, &edad);
  9.  
  10.    printf("Nombre: %s\n", nombre);
  11.    printf("Edad: %i\n", edad);
  12. }


Título: Re: Separa char para usar en otra variable
Publicado por: veravluis en 22 Marzo 2017, 00:38 am
Un ejemplo con tus datos:
Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. char nombreEdad[] = "Luis 20";
  5.    char nombre[20];
  6.    int edad;
  7.  
  8.    sscanf(nombreEdad, "%s %i", nombre, &edad);
  9.  
  10.    printf("Nombre: %s\n", nombre);
  11.    printf("Edad: %i\n", edad);
  12. }

Gracias por su ayuda me sirvió de mucho, pero se me presento otro problema no puedo leer numeros con 10 digitos, me lee perfecto hasta 9 numeros pero con 10 me sale un numero diferente al que leo, como podría solucionar esto ? gracias

Código
  1. char datos[] = "1 2304872458";
  2.  
  3. int code;
  4. unsigned long code1;
  5.  
  6. sscanf(datos, "%i %i", &code, &code1);
  7.  
  8. printf("%i ",code);
  9. printf("%i ",code1);
  10.  

//Solución %u, Gracias por la ayuda.


Título: Re: Separa char para usar en otra variable
Publicado por: engel lex en 22 Marzo 2017, 00:45 am
cuando lees en el sscanf usas %i indicando que deseas leer un int...  debes usar %li para leer un long int