[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