// "Ejercicio 4 // Escribir un módulo para insertar una cadena s en la cadena c a partir de una posición p. No utilizar //funciones predefinidas del lenguaje C para tratamiento de cadenas. (Puede realizarlo con o sin // punteros) // Luego escribir un programa que utilizando el módulo anterior permita ingresar N cadenas, // una cadena s y una posición p y muestre la inserción de s en cada cadena ingresada. #include <stdio.h> void insertar(char sub[30], char cad[30], char salida[30], int l, int p); main() { char cadena[30]; char subcadena[30]; char salida[30]; int posicion, longitud, i, total; printf("Ingrese cantidad de cadenas:"); scanf("%i",&total); printf("Ingrese subcadena a insertar:\n"); fflush(stdin); gets(subcadena); printf("Ingrese una posicion donde insertar:\n"); scanf("%i",&posicion); for (i=0; i< total; i++) { printf("Ingrese cadena:\n"); fflush(stdin); gets(cadena); longitud = strlen(cadena); insertar(subcadena,cadena,salida,longitud, posicion); printf("la cadena luego de la insercion es:"); puts(salida); system("pause"); } } void insertar(char sub[30], char cad[30], char salida[30], int l, int p) { char *c,*s, *aux; aux = salida; c=cad; s=sub; int i,k,j,z; if (p <= l) { for(i=0; i<p; i++) *(aux+i) = *(c+i); k = i; j = 0; while(*(s+j)!='\0') { *(aux+k+j) = *(s+j); j++; } k = k+j; j=0; for (z = p; z<= l; z++) { *(aux+k+j) = *(c+z); j++; } } else for(i=0; i<=l; i++) *(aux+i) = *(c+i); }