Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created March 18, 2020 19:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/ba90b153a422154c8c35b7d77f5d682f to your computer and use it in GitHub Desktop.
Save parzibyte/ba90b153a422154c8c35b7d77f5d682f to your computer and use it in GitHub Desktop.
/*
____ _____ _ _ _
| _ \ | __ \ (_) | | |
| |_) |_ _ | |__) |_ _ _ __ _____| |__ _ _| |_ ___
| _ <| | | | | ___/ _` | '__|_ / | '_ \| | | | __/ _ \
| |_) | |_| | | | | (_| | | / /| | |_) | |_| | || __/
|____/ \__, | |_| \__,_|_| /___|_|_.__/ \__, |\__\___|
__/ | __/ |
|___/ |___/
Blog: https://parzibyte.me/blog
Ayuda: https://parzibyte.me/blog/contrataciones-ayuda/
Contacto: https://parzibyte.me/blog/contacto/
Copyright (c) 2020 Luis Cabrera Benito
Licenciado bajo la licencia MIT
El texto de arriba debe ser incluido en cualquier redistribución
* */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXIMA_LONGITUD 100
void insertarSubcadena(char *original, char *subcadena, int indice) {
// El inicio es copiar la original N caracteres definidos por posición
char inicio[MAXIMA_LONGITUD] = "";
strncpy(inicio, original, indice);
// El final es copiar desde la posición N caracteres definidos por los sobrantes
char fin[MAXIMA_LONGITUD] = "";
strncpy(fin, original + indice, strlen(original) - indice);
// Agregar la subcadena al inicio
strcat(inicio, subcadena);
// Y agregar el fin a la anterior cadena, es decir, al inicio
strcat(inicio, fin);
// Copiarla dentro de la cadena recibida
strcpy(original, inicio);
}
int main() {
// Vamos a formar "Luis Cabrera"
char nombre[] = "us";
printf("Antes: %s\n", nombre);
// Insertamos la L al inicio
insertarSubcadena(nombre, "L", 0);
printf("Después: %s\n", nombre);
// La i en penúltimo lugar
insertarSubcadena(nombre, "i", 2);
printf("Después: %s\n", nombre);
// Ahora " Cabrera" al final
insertarSubcadena(nombre, " Cabrera", 4);
printf("Después: %s\n", nombre);
return EXIT_SUCCESS;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment