// "Ejercicio 4 // Escribir un módulo para insertar una cadena s en la

Anuncio
// "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);
}
Descargar