#define L 40 char gen_letra() { char alfabeto[] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i' }; return alfabeto[rand() % 9]; } /*generar cadena de literales de longitud aleatoria menor que dim*/ void gencad(char *c /*c[]*/, int dim) { int i, N = rand() % (dim - 1); for (i = 0; i < N; i++) *(c + i) = gen_letra(); *(c + i) = '\0'; } /*funcion recibe como entrada acceso a las cadenas de caracteres asociadas con punteros pa y pb y devuelve la cadena concatenada mediante puntero pc */ void concatenar(char* pa, char* pb, char* pc) { char* auxA = pa, *auxC = pc, *auxB = pb; while (*auxA != '\0') { /* mediante tres instrucciones: *auxC = *auxA; auxC++; //++auxC; auxA++; */ // o lo mismo con una sola instruccion: *(auxC++) = *(auxA++); } while (*auxB != '\0') { *(auxC++) = *(auxB++); } *auxC = '\0'; } /*prueba de funcion concatenar():*/ int main() { char A[L], B[L], C[2 * L]; gencad(A, L); puts("\n cadena A generada:"); puts(A); gencad(B, L); puts("\n cadena B generada:"); puts(B); concatenar(A, B, C); puts("\n cadena C (A+B):"); puts(C); return 0; }