elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  copiar ciertos valores de una variable en otra variable en lenguaje C.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: copiar ciertos valores de una variable en otra variable en lenguaje C.  (Leído 3,647 veces)
fafafa01

Desconectado Desconectado

Mensajes: 82


Ver Perfil
copiar ciertos valores de una variable en otra variable en lenguaje C.
« en: 18 Abril 2016, 23:39 pm »

Hola, como dice el titulo, lo que quiero hacer es:

copiar de una variable entera cierta información y guardarla en otra variable.

el problema surge al poner en la variable entero una fecha como la que sigue

Código
  1. int d, a=25-02-1998;

quisiera que la función le saque el guion medio a esa variable:

Código
  1. d=25021998;

gracias por sus respuestas y saludos.


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.608


🏴 Libertad!!!!!


Ver Perfil WWW
Re: copiar ciertos valores de una variable en otra variable en lenguaje C.
« Respuesta #1 en: 18 Abril 2016, 23:47 pm »

a=25-02-1998

Tu necesitas aprender a manejar cadenas.

la instruccion que muestras es 25-02 = 23-1998 = -1975

😆😆😆

Necesitas hacer substrings y cada que encuentres un guion lo sustitulles.


En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: copiar ciertos valores de una variable en otra variable en lenguaje C.
« Respuesta #2 en: 19 Abril 2016, 01:22 am »

Podrias hacerlo con la funcion strok()
En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
fafafa01

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Re: copiar ciertos valores de una variable en otra variable en lenguaje C.
« Respuesta #3 en: 19 Abril 2016, 03:37 am »

He logrado separar cada numero en un arreglo y deshacerme de los guiones, pero ahora cuando sumo la primer celda del arreglo (ej: 2) con la segunda celda del arreglo (ej: 0), no da 20. ¿hay alguna forma de sumar esos enteros 2+0=20?

Hola, como dice el titulo, lo que quiero hacer es:

copiar de una variable entera cierta información y guardarla en otra variable.

el problema surge al poner en la variable entero una fecha como la que sigue

Código
  1. int d, a=25-02-1998;

quisiera que la función le saque el guion medio a esa variable:

Código
  1. d=25021998;

gracias por sus respuestas y saludos.

En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: copiar ciertos valores de una variable en otra variable en lenguaje C.
« Respuesta #4 en: 19 Abril 2016, 04:16 am »

Si solo quieres sacar por pantalla juntos ciertos valores....... es muy simple:

Código
  1. cout << a << b << c << d .... << ... << endl;
  2.  


Si verdaderamente necesitas concatenar porque vas a devolver eso en una funcion, etc...

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. using namespace std;
  7.  
  8. // se puede generalizar
  9. char* concatnum(int a, int b){
  10. char as[10], bs[10];
  11. static char out[30];
  12.  
  13. itoa(a,as,10);
  14. itoa(b,bs,10);
  15.  
  16. strcpy(out,as);
  17. strcat(out,bs);
  18.  
  19. // podria devolver un "string" (char*) o un entero
  20. return out;
  21. }
  22.  
  23.  
  24. int main(void){
  25. cout << concatnum(2,0);
  26. }
  27.  


EDIT: La funcion que puse no tiene verdadera utilidad (solo te sirve para mirar como funcionan strcpy y strcat) porque solo recibe 2 valores, iba a generalizar pero me tuve que ir a dormir y otro compañero ya te dio una respuesta mejor ahora.
« Última modificación: 19 Abril 2016, 14:28 pm por boctulus » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
xiruko


Desconectado Desconectado

Mensajes: 437


Ver Perfil
Re: copiar ciertos valores de una variable en otra variable en lenguaje C.
« Respuesta #5 en: 19 Abril 2016, 05:17 am »

Hola,

Como en programación hay mil maneras de hacer una misma cosa, te dejo otra opción para juntar un array de enteros en uno solo. Ten cuidado con el valor máximo que puede tomar un entero, ya que con esta función es muy fácil pasarlo si se utiliza mal, y ahora mismo no hace ningún tipo de verificación.

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int join(int *arr, size_t arr_size)
  5. {
  6. int result, i;
  7. char aux[256];
  8. for (i=0; i<arr_size; i++) {
  9. sprintf(aux + strlen(aux), "%d", arr[i]);
  10. }
  11. sscanf(aux, "%d", &result);
  12. return result;
  13. }
  14.  
  15. int main(void)
  16. {
  17. int arr[4] = {1, 2, 3, 4};
  18. int result = join(arr, 4);
  19. printf("%d\n", result);
  20. return 0;
  21. }

Saludos!
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: copiar ciertos valores de una variable en otra variable en lenguaje C.
« Respuesta #6 en: 19 Abril 2016, 14:25 pm »

Compañero @xiruko : te consulto por el uso de sscanf() con "%d"

Tu sabras si es mas eficiente que usar atoi() ?
En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
xiruko


Desconectado Desconectado

Mensajes: 437


Ver Perfil
Re: copiar ciertos valores de una variable en otra variable en lenguaje C.
« Respuesta #7 en: 19 Abril 2016, 16:34 pm »

Compañero @xiruko : te consulto por el uso de sscanf() con "%d"

Tu sabras si es mas eficiente que usar atoi() ?

Hola,

Es más eficiente atoi debido a que se ahorra parsear la cadena buscando los especificadores como hace sscanf. Usé sscanf para aportar otras funciones distintas a las que ya habían en el tema.

Aquí puedes encontrar una comparación muy buena entre ambas funciones:

http://stackoverflow.com/questions/3420629/convert-string-to-integer-sscanf-or-atoi

Saludos!
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: copiar ciertos valores de una variable en otra variable en lenguaje C.
« Respuesta #8 en: 19 Abril 2016, 16:47 pm »

Gracias, me pareció interesante tu codigo y el enlace a StackOverflow   ;)
« Última modificación: 19 Abril 2016, 18:56 pm por boctulus » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
geeke

Desconectado Desconectado

Mensajes: 93


Ver Perfil
Re: copiar ciertos valores de una variable en otra variable en lenguaje C.
« Respuesta #9 en: 19 Abril 2016, 18:32 pm »

atoi() es inseguro, evita utilizarlo en lo posible a no ser en casos sencillos y controlados; esta función no proporciona ninguna funcionalidad para el tratamiento de errores. El problema más importante con esta es que conduce a un comportamiento indefinido en caso de desbordamiento; por eso es preferible usar strtol una alternativa mucha mas segura por obvias razones.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines