Bueno gente, la verdad estoy practicando un poco y estoy armando una funcion para poder concatenar una cantidad de cadenas indefinida, y estoy usando una funcion con una cantidad de parametros indefinidos.
Aqui el codigo:
Código C++:
Ver original#include <iostream>
#include <stdarg.h>
#include <stdlib.h>
using namespace std;
void pause()
{
cout << "Presione Enter para finalizar..." << endl;
char c;
do
{
} while (c != '\n');
}
char* MultiCad(int, ...);
int maxLong(char* cadena)
{
int x=0;
while(cadena[x] != '\0')x++;
return x;
}
int main()
{
printf("Cadena : %s\n", MultiCad
(4, "Chuck ", "Norris", " es ","Dios")); pause();
return 0;
}
char* MultiCad(int max, ...)
{
va_list p;
int ac_size=0;
char* Cadena
= (char*)calloc(sizeof(char), ac_size
); int ac_x=0;
for (int x=0; x < max; x++)
{
char* temp
= va_arg(p
, char*); ac_size += maxLong(temp);
Cadena
= (char*)realloc(Cadena
, (sizeof(char)*ac_size
)); for (int y=0; y < maxLong(temp); y++)
Cadena[ac_x++] = temp[y];
}
Cadena[ac_size] = '\0';
return Cadena;
}
Lo que me gustaria saber es si hay alguna forma en la que yo no tenga que declarar la cantidad de parametros.