Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda agregando caracteres

Estas en el tema de Ayuda agregando caracteres en el foro de C/C++ en Foros del Web. Yo hacia esto, siendo todas las variables del tipo string Cita: buffer = ("LOG"+acc_ID+"/"+acc_password+"/\r\n"); Pero ahora necesito hacerlo con cadenas de caracteres(char[]) y no se ...
  #1 (permalink)  
Antiguo 17/05/2009, 12:02
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
De acuerdo Ayuda agregando caracteres

Yo hacia esto, siendo todas las variables del tipo string
Cita:
buffer = ("LOG"+acc_ID+"/"+acc_password+"/\r\n");
Pero ahora necesito hacerlo con cadenas de caracteres(char[]) y no se me ocurre(mas bien no se) como hacerlo, porfavor ayudenme.

Edito:
Ya encontre una forma , es la siguiente:
Cita:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>

using namespace std;

/* Halla la longitud de una cadena, hace las veces de strlen */
int longitud(char *cadena)
{
int i;
for(i=0; ;i++)
if(cadena[i]=='\0')
break;
return i;
}


/*
Concatena cadena1 y cadena2 y devuelve la cadena resultante en cadena
*/
void concatenar(char *cadena, char *cadena1, char *cadena2)
{
int i, l_cadena1, l_cadena2;

l_cadena1 = longitud(cadena1);
l_cadena2 = longitud(cadena2);

for(i=0; i<l_cadena1; i++)
cadena[i]=cadena1[i];
for(i=0; i<l_cadena2; i++)
cadena[l_cadena1+i]=cadena2[i];

cadena[l_cadena1+l_cadena2]='\0';
}

int main()
{
char cadena1[4] = "ABC";
char cadena2[20];


char *cadena;

cout <<"Ingrese algo."<< endl;
cin >> cadena2;

concatenar(cadena, cadena1, cadena2);

printf("Cadena 1: %s, caracteres: %d\n", cadena1, longitud(cadena1));
printf("Cadena 2: %s, caracteres: %d\n", cadena2, longitud(cadena2));
printf("Cadena resultante: %s, caracteres: %d \n", cadena, longitud(cadena));
system("PAUSE");
}

Última edición por Tikitios; 17/05/2009 a las 12:16
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:00.