[C con Clase] Conctatenar carácteres

Rubén parraymartinez en terra.es
Sab Ene 24 14:51:19 CET 2009


El sáb, 24-01-2009 a las 00:49 +0100, Programante escribió:
> Rubén escribió:
> > Buenas,
> >
> > Llevo un par de semanas intentando juntar dos cadenas de carácteres,
> > pero he probado mil cosas y no me sale.
> >
> > Ejemplo:
> >
> > 	char servidor[60];
> > 	char rc[50];
> > 	char conexion[100];
> > 	cout<<"Introduzca la ip del servidor:"<<endl;
> > 	cin>>servidor";
> > 	rc = "Rclient xxx";
> > 	//Más o menos por aquí me pierdo.
> >
> > La cosa es que quiero juntar en una línea el comando de RClient (win)
> > con la ip escrita por el usuario. 
> >
> > ¿Alguna idea?
> >
> > Gracias y un saludo,
> >
> > Rubén.
> 	rc = "Rclient xxx"; es incorrecto. No puedes asignar la cadena de caracteres al array. Lo que tienes que hacer es strcpy(rc, "Rclient xxx");
> 
> Puedes hacer:
> strcpy(conexion, rc);
> strcat(conexion, servidor);
> 
> O bien:
> sprintf(conexion, "%s%s", rc, servidor);
> 
> O dado que usas C++
> #incldue <string>
> std::string conexion, rc;
> rc = "Rclient xxx";
> conexion = rc + servidor;
> 
>  
> Otra opción de C++ también sería usar un stringstream

Gracias, Programante, algo avanzamos. Pero ahora, al hacer 
system (conexion); 
me da éste error al compilar:

main.cpp:26: error: no se puede convertir ‘std::string’ a ‘const char*’
para el argumento ‘1’ para ‘int system(const char*)’

Lo he hecho con la clase string y el namespace std. Si saco por pantalla
con cout<<conexion<<endl; la cadena me la imprime bien.

¿Alguna idea?

Gracias y un saludo,

Rubén.








Más información sobre la lista de distribución Cconclase