• Jueves 28 de Marzo de 2024, 15:02

Autor Tema:  Ayuda Con C++  (Leído 3673 veces)

andresca

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Ayuda Con C++
« en: Lunes 11 de Diciembre de 2006, 05:03 »
0
Hola a todos...

¿¿Como puedo concatenar una variable char con una variable entera en DevC++??

he probado varias funciones y no he podido lograr unir estos dos tipos de variables....



saudos, y muchas gracias...

Andrés Camilo (desde Medellín- Colombia)

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Ayuda Con C++
« Respuesta #1 en: Lunes 11 de Diciembre de 2006, 05:24 »
0
Lo que tenés que hacer de primero es convertir el valor que tiene la variable entera a una variable tipo char. lo podes hacer con sprintf o con itoa.

Código: Text
  1.  
  2. int entero=125;
  3. char cadena[50];
  4.  
  5. sprintf(cadena, "%d",entero);
  6. printf("la cadena%s",cadena);
  7.  
  8. //------------------------------------
  9.  
  10. entero = 12345;
  11.  
  12. itoa(entero,cadena, 10);
  13. printf("\nEntero = %d cadena = %s\n", entero, cadena);
  14.  
  15.  

luego concatenas las variables con strcat
Un dia sin sol es como, ya sabes, ... noche

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #2 en: Lunes 11 de Diciembre de 2006, 07:32 »
0
:P


#include <string.h>
#include <stdio.h>

int main(void)
{
   char destination[25];
   char *blank = " ", *c = "C++", *turbo = "Turbo";

   strcpy(destination, turbo);
   strcat(destination, blank);
   strcat(destination, c);

   printf("%s\n", destination);
   return 0;
}
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #3 en: Lunes 11 de Diciembre de 2006, 08:13 »
0
¿Cual es el sentido de tu respuesta Bicholey? NO es lo que piden y robertogt ya le contesto como hacerlo. Parece spam ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ayuda Con C++
« Respuesta #4 en: Lunes 11 de Diciembre de 2006, 14:25 »
0
:lol:  la otra varible era entera????  :blink:

hubieras comenzado por ahí cuando hablamos por messenger... de razón que no te funciono jajajajaja :lol:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

andresca

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #5 en: Lunes 11 de Diciembre de 2006, 14:40 »
0
si, yo te havia comentado que era una variable de tipo entero....

el objetivo que tengo es poder jalar unos sprites desde el frame_inicial hasta frame_final que son los parametros que tengo.... luego hago un array por medio de un while y despues trato de coger cada frame del sprite, es decir, cuando el jugador oprime tal tecla se inicia una función y de parametros se ingresan dos números, por ejemplo, desde el 10 hasta 20 y el sistema coge los sprites indicados desde el 10 hasta el 20 por medio de una ruta, y la ruta es de tipo char.....

esta tarde pruebo el código que me puso Robertogt haver como me va... si no por acá vuelvo y los molesto.....


saludos...
Andrés Camilo

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ayuda Con C++
« Respuesta #6 en: Lunes 11 de Diciembre de 2006, 14:44 »
0
te va a quedar muy lento si siempre lees desde archivo... :whistling:

;)

Lo ideal es que los tengas en memoria y luego accedes a las imagenes desde la memoria para lograr las animaciones.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

andresca

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #7 en: Lunes 18 de Diciembre de 2006, 23:27 »
0
hola... ya solucioné el problema de concatenación... y agaradesco a todos por la ayuda y especialmente a robertogt y a juank que me ayudó por otro lado....

pero tengo otro problemita....

¿¿¿¿como puedo pasar una variable que tengo en un archivo "inicio.cpp" a otro archivo "carga_imagen.cpp" si además de eso estoy utilizando clases????...

en el archivo "inicio.cpp" tengo SDL_Surface *screen" y quiero pasar este screen al otro archivo llamado "carga_imagenes" ¿como hago???

no se si me comprendan.....

saludos
Andrés Camilo
(desde Medellín-Colombia)

SteelX

  • Miembro MUY activo
  • ***
  • Mensajes: 218
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #8 en: Lunes 18 de Diciembre de 2006, 23:40 »
0
Creo que lo que quieres es una variable global. puedes usar "extern" para usar lo que quieres en diferentes cpp
Inside the code

andresca

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #9 en: Martes 19 de Diciembre de 2006, 00:22 »
0
si, lo vi desde un ejemplo, y lo que hice fue crear un nuevo header con la variable global y me compiló sin problemas, pero no me funciona como quería....

andresca

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #10 en: Jueves 21 de Diciembre de 2006, 03:32 »
0
mejor, despues de tanto buscar y no encontrar nada, la pregunta para que me den un empujoncito es....

¿como hago para retornar el nuevo valor del puntero screen que está en la clase A a la clase B? es decir...

tengo una clase A que es un header.... en esta clase tengo una función que le asigna un valor al puntero SDL_Surface *screen...

y tengo otra clase B que es otro header, esta clase tiene una función que necesita el apuntador screen con el valor establecido en la función de la clase A....

hice varios intentos, uno de ellos fue crear una función que retorne ese apuntador con return... pero al parecer no me retorna lo que necesito... o al parecer no se si return no devuelve valores en su contexto o en su teoría......

bueno, no se si me hice explicar bien....

saludos...
Andrés Camilo

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ayuda Con C++
« Respuesta #11 en: Jueves 21 de Diciembre de 2006, 03:44 »
0
creo que tienes un porblema en el diseño de clases .


Si el puntero ala surface esta definido (y supongo inicializado) en la clase A, el metodo en la clase B debe recibir ese puntero a la surface como parametro. punto final.

Ya desde la clase que es el programa ,o desde el main según como lo estes haciendo,  declaras una instancias de cada una de esas clases ( A y B ), una vez inicializadas llamas al método de la instancia de la clase B que tiene el parámetro de la surface y le pasas como parámetro el puntero de la surface definido en el objeto de la clase A.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

bleglaiger

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #12 en: Sábado 23 de Diciembre de 2006, 00:27 »
0
hola,no es por emnosreciar pero al solucion que dio no sirve de nada jaja bueno te ayudo con esto haber si te sirve jej

#include <string.h>
#include <stdio.h>
#include<stdlib.h>

int main(void)
{
   char cadena[]="soy el numero ";//esta es la cadena
   int entero=147; //este es el nuemro entero
   char cadNum[10];//aca es la cadena a donde voya  pasar el    
                                         //entero convertido en cadena
   itoa(entero,cadNum,10);//convierto mi numero a string
                                                    //el 10 es la base decimal a la cual
                                                    //porque el entero esta en base decimal
   printf("La concatenacion es : %s",strcat(cadena,cadNum));
   return 0;
}

*******THE KING IS COMING**********
IMG]http://http://yakisova-web.hp.infoseek.co.jp/blade3.jpg[/IMG]
****THE KING IS COMING****

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #13 en: Sábado 23 de Diciembre de 2006, 10:08 »
0
Cita de: "bleglaiger"
hola,no es por emnosreciar pero al solucion que dio no sirve de nada jaja bueno te ayudo con esto haber si te sirve jej
Tu solucion no es segura en lo mas minimo. Siendo el numero 147 estas copiando 3 bytes a una cadena que no tiene espacio suficiente para eso.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ayuda Con C++
« Respuesta #14 en: Sábado 23 de Diciembre de 2006, 13:18 »
0
Cita de: "bleglaiger"
hola,no es por emnosreciar pero al solucion que dio no sirve de nada jaja bueno te ayudo con esto haber si te sirve jej

#include <string.h>
#include <stdio.h>
#include<stdlib.h>

int main(void)
{
   char cadena[]="soy el numero ";//esta es la cadena
   int entero=147; //este es el nuemro entero
   char cadNum[10];//aca es la cadena a donde voya  pasar el   
                                         //entero convertido en cadena
   itoa(entero,cadNum,10);//convierto mi numero a string
                                                    //el 10 es la base decimal a la cual
                                                    //porque el entero esta en base decimal
   printf("La concatenacion es : %s",strcat(cadena,cadNum));
   return 0;
}

*******THE KING IS COMING**********

1- Creo que esto es de otro tema???? que hace aca??? me confirmas por favor.

2- No se de que tema me estas hablando, pero el hecho de que no lo hayas entendido o no hayas sido capaz de hacerlo no implica que no sirva... desde luego como no se de que tema me estas hablando no se si tengas o no la razón.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

bleglaiger

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #15 en: Sábado 23 de Diciembre de 2006, 15:59 »
0
Citar
Eternal Idol

bueno yo no e copiado ningun numero ninguna cadena, simplemente lo eh concatenado convirtiendo primero el nuemro 147 a char yleugo esa cadena lo concatene con mi variable dadena , no te entendi muhco que es loq eu segun tu copie :s bueno con repect a lo que me dijo JuanK tratare de ser ams humilde :D ejej, y bueno si mi solucion no es la correcta diganme donde falle ps apra aprender yo tambien sorry ok

***********THE KING IS COMING***********
IMG]http://http://yakisova-web.hp.infoseek.co.jp/blade3.jpg[/IMG]
****THE KING IS COMING****

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #16 en: Sábado 23 de Diciembre de 2006, 16:24 »
0
copiar.
   (De copia).
   1. tr. Escribir en una parte lo que está escrito en otra.

Cuando llamas a strcat esta funcion copia los bytes que hay en cadNum al final de cadena cuyo tamaño no esta previsto para esto.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

bleglaiger

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #17 en: Sábado 23 de Diciembre de 2006, 16:45 »
0
Citar
Eternal Idol


AAAAAAAA, PS NO SABIA QUE EOS SUCEDIA ITNERNAMENTE PS PENSE QUE SOLO UNICA LAS CADENAS, BUENO TOCNES COMO SERAI UAN SOLUCION ME PEUDES DEICR PARA NO SEGUIR EN ESTA IGNORANCIA :s

AHORA COMO AHGO APRA QUE SEA AMS SGURO TAMBIEN
SALUDOS
*********THE KIGN IS COMING**********
IMG]http://http://yakisova-web.hp.infoseek.co.jp/blade3.jpg[/IMG]
****THE KING IS COMING****

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Ayuda Con C++
« Respuesta #18 en: Sábado 23 de Diciembre de 2006, 16:49 »
0
Una cadena no es mas que un conjunto de bytes consecutivos y el problema en este caso es la falta de bytes disponibles para escribir el numero 147. Sin ir mas lejos esto en VC++ hace que destruyas los valores que hay en cadNum:

Código: Text
  1.  
  2. #include &#60;string.h&#62;
  3. #include &#60;stdio.h&#62;
  4. #include&#60;stdlib.h&#62;
  5.  
  6. int main(void)
  7. {
  8. char cadena[]=&#34;soy el numero &#34;;//esta es la cadena
  9. int entero=147; //este es el nuemro entero
  10. char cadNum[10];//aca es la cadena a donde voya pasar el
  11. //entero convertido en cadena
  12. itoa(entero,cadNum,10);//convierto mi numero a string
  13. //el 10 es la base decimal a la cual
  14. //porque el entero esta en base decimal
  15. printf(&#34;cadNum es: %s&#092;r&#092;n&#34;, cadNum);
  16. printf(&#34;La concatenacion es : %s&#092;r&#092;n&#34;,strcat(cadena,cadNum));
  17. printf(&#34;Ups, ahora jodi cadNum: %s&#092;r&#092;n&#34;, cadNum);
  18. return 0;
  19. }
  20.  
  21.  

Tal como queres hacerlo para que este bien podes crear una nueva cadena en tiempo de ejecucion calculando el tamaño necesario (no hay que olvidarse que las cadenas necesitan un byte terminador que es el 0) y reservando/liberando (malloc/free) memoria. De otra manera muy facil, mira la primera pagina de este hilo y tendras una solucion correcta.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.