elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
18 Noviembre 2008, 11:11  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++
| | |-+  Unir 2 *char
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Imprimir
Autor Tema: Unir 2 *char  (Leído 780 veces)
WHK

Desconectado Desconectado

Mensajes: 886


+-=[Yan]=-+


Ver Perfil WWW
Unir 2 *char
« en: 06 Junio 2008, 05:08 »

Así como en php es :
$palabra1 = "ho";
$palabra2 = "la";
$palabra3 = $palabra1.$palabra2;
como sería en c++?
En línea

* The Hacktivism is not a crime.
http://solid.jccharry.com/
Greencode WEB Kit by WHK

Freeze.

Desconectado Desconectado

Mensajes: 2.538


FireSoft


Ver Perfil WWW
Re: Unir 2 *char
« Respuesta #1 en: 06 Junio 2008, 05:25 »

Código
#include <string>
int main()
{
  strcat(palabra1,palabra2);
}
En línea

Un nuevo CMS, pruebalo:


WHK

Desconectado Desconectado

Mensajes: 886


+-=[Yan]=-+


Ver Perfil WWW
Unir 2 *char
« Respuesta #2 en: 06 Junio 2008, 05:47 »

Gracias, no entendía la función pero ahora me queda claro.
En línea

* The Hacktivism is not a crime.
http://solid.jccharry.com/
Greencode WEB Kit by WHK

E0N
Lab &
Colaborador

Desconectado Desconectado

Mensajes: 2.756


http://e0n-productions.blogspot.com/


Ver Perfil WWW
Re: Unir 2 *char
« Respuesta #3 en: 06 Junio 2008, 17:32 »

O el api lstrcat
En línea

Inaugurado y en construcción:
http://e0n-productions.blogspot.com/
Freeze.

Desconectado Desconectado

Mensajes: 2.538


FireSoft


Ver Perfil WWW
Re: Unir 2 *char
« Respuesta #4 en: 06 Junio 2008, 20:11 »

¿Cual es la diferencia de usar api o usar función?
En línea

Un nuevo CMS, pruebalo:


Nakp

Desconectado Desconectado

Mensajes: 3.030


The sound of music ñ_ñ


Ver Perfil WWW
Re: Unir 2 *char
« Respuesta #5 en: 06 Junio 2008, 21:01 »

ehm... para usar la api necesitas windows.h y la función esta en string.h :xD

salu2
En línea



GTFO YOYO
Freeze.

Desconectado Desconectado

Mensajes: 2.538


FireSoft


Ver Perfil WWW
Re: Unir 2 *char
« Respuesta #6 en: 06 Junio 2008, 21:02 »

Y en Rendimiento?
En línea

Un nuevo CMS, pruebalo:


Cab Calloway
Colaborador

Desconectado Desconectado

Mensajes: 4.319



Ver Perfil
Re: Unir 2 *char
« Respuesta #7 en: 06 Junio 2008, 21:07 »

Supongo que ambas tendrán la misma eficiencia...
En línea

674658434
Freeze.

Desconectado Desconectado

Mensajes: 2.538


FireSoft


Ver Perfil WWW
Re: Unir 2 *char
« Respuesta #8 en: 06 Junio 2008, 21:26 »

Pero no tarda más llamar a una función ¿?
o tarda más cargar una api con LoadLibrary¿?
o sera mejor include¿?

:xD De verdad no se que es mejor aunque me gusta trabajar más con apis pero con funciones tan simples no :P
En línea

Un nuevo CMS, pruebalo:


Widget

Desconectado Desconectado

Mensajes: 151



Ver Perfil
Re: Unir 2 *char
« Respuesta #9 en: 06 Junio 2008, 21:32 »

¿Y strcat del ANSI no es una API?

Strcat es parte de la API del ANSI/C de la libreria estandard...
En línea

Es mejor no abrir la boca pareciendo ser idiota, que abrirla y no dejar duda de ello...
Karman

Desconectado Desconectado

Mensajes: 260



Ver Perfil WWW
Re: Unir 2 *char
« Respuesta #10 en: 06 Junio 2008, 23:13 »

en realidad strcat es de C, no de C++, en C++ existe string...

Código
#include <string>
using namespace std;
...
string a = "Ho";
string b,c="c++";
 
b = "la";
 
string d = a + b + " " + c;
cout << d << endl;
 

lo único que no pudes hacer es "ho" + "la", puesto que los char* puros no se pueden sumar...

S2
En línea

Widget

Desconectado Desconectado

Mensajes: 151



Ver Perfil
Re: Unir 2 *char
« Respuesta #11 en: 06 Junio 2008, 23:55 »

Hombre, por sumarlos, si puedes sumarlos, pero estarias sumando su valor binario, lo cual devolveria un resultado inesperado. Estarias sumando la direccion de memoria de dos punteros....

En línea

Es mejor no abrir la boca pareciendo ser idiota, que abrirla y no dejar duda de ello...
E0N
Lab &
Colaborador

Desconectado Desconectado

Mensajes: 2.756


http://e0n-productions.blogspot.com/


Ver Perfil WWW
Re: Unir 2 *char
« Respuesta #12 en: 07 Junio 2008, 01:02 »

Citar
¿Cual es la diferencia de usar api o usar función?

Pues con la funcion el codigo es mas portable, ya q no depende del SO :P Si te llevas un code en C creado en win q solo use librerias estandar a linux por ej pues lo podrás compilar sin problemas en dicho SO, si usas apis no, ya q el resto de SO no tienen las apis identicas a Win

Que programa sería más rapido?? pues haz la prueba a ver, mira cuantos milisegundos tarda cada uno si tanta curiosidad tienes jaja

Salu2
En línea

Inaugurado y en construcción:
http://e0n-productions.blogspot.com/
WHK

Desconectado Desconectado

Mensajes: 886


+-=[Yan]=-+


Ver Perfil WWW
Re: Unir 2 *char
« Respuesta #13 en: 07 Junio 2008, 02:15 »

De todas formas pienso que usar API es mala costumbre si sabes hacerlo con funciones que no dependan de Windows ya que estarás privando al software de correr en un solo sistema operativo, si fuera así mejor hacemos todo en visual :P que al final lo corres en windows con framework o estás jodido.

PD: gracias por la función pero al parecer soy un poco duro de cabeza:

Código
int extension_creator(char *Extension, int Verbose){
char *Ruta0;
strcat(Ruta0,".");
strcat(Ruta0,Extension);
char *Ruta1;
strcat(Ruta1,Extension);
strcat(Ruta1,"file");
char *Ruta2;
strcat(Ruta2,Ruta1);
strcat(Ruta2,"\\shell\\open\\command");
#define Error_ext "No se pudo establecer la extension."
 
if(Verbose){printf("Estableciendo extension...\n");}
HKEY Reg;
if(RegCreateKeyA(HKEY_CLASSES_ROOT, Ruta0, &Reg) == ERROR_SUCCESS){
if(RegSetValueA(Reg, (char *)NULL, REG_SZ, Ruta1, strlen(Ruta1)) == ERROR_SUCCESS){}
 if(RegCreateKeyA(HKEY_CLASSES_ROOT, Ruta2, &Reg) == ERROR_SUCCESS){
  if(RegSetValueA(Reg, (char *)NULL, REG_SZ, "\x25\x31", 2) == ERROR_SUCCESS){
   RegCloseKey(Reg);
   if(Verbose){printf("Extension \"%s\" establecida como ejecutable!.",Extension);}
   return 1;
  }else if(Verbose){printf(Error_ext);}
 }else if(Verbose){printf(Error_ext);}
}else if(Verbose){printf(Error_ext);}
return 0;
}
 

Donde se supone ingresas la extension y debe quedar .extension y despues extensionfile, etc ... en esos casos debo unir ambos chars en uno solo pero algo no me funcionó o yo no lo entendí :P
Antes lo había hecho contando los caracteres con un array y añadiendolos de a uno por uno pero tenía conflictos en el retorno ya que la cantidad de valores dentro del array retornado no es constante:

Código
 char INI[] = "\x5C\x44\x65\x73\x6B\x74\x6F\x70\x2E\x69\x6E\x69";
char Ruta_INI[strlen(Ruta) + strlen(INI)];
for(int Cuenta = 0; Cuenta <= (1 + (strlen(Ruta) + strlen(INI))); Cuenta++){
 if(Cuenta <= (strlen(Ruta) - 1)){
  Ruta_INI[Cuenta] = Ruta[Cuenta];
 }else{
  Ruta_INI[Cuenta] = INI[Cuenta - strlen(Ruta)];
 }
}

Algo así pero esto era una función que eliminé.

Pensar que en php lo haces con un simple punto, en VB con "&" y en bat con %% pero porque no lo pensaron para C++ :P
En línea

* The Hacktivism is not a crime.
http://solid.jccharry.com/
Greencode WEB Kit by WHK

byebye

Desconectado Desconectado

Mensajes: 5.296



Ver Perfil
Re: Unir 2 *char
« Respuesta #14 en: 07 Junio 2008, 02:25 »

o tb puedes usar sprintf que para algunos casos es bastante comodo ya que puedes darle formato como a printf.
En línea
Páginas: [1] 2 Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC