Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created August 1, 2019 15:51
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/325dee04cacddc426fb69414ff12e8b9 to your computer and use it in GitHub Desktop.
Save parzibyte/325dee04cacddc426fb69414ff12e8b9 to your computer and use it in GitHub Desktop.
Ejemplo para invertir una cadena en C - https://parzibyte.me/blog/2018/11/17/invertir-cadena-en-c/
#include <stdio.h>
#include <string.h>
#define LONGITUD_CADENA 10000
/**
Invertir cadena en C
@author parzibyte
*/
char *invertir(char cadena[]);
int main(void) {
char cadena[LONGITUD_CADENA];
printf("Escribe una cadena (cuya longitud sea menor a %d) y la invertiré: ",
LONGITUD_CADENA - 1);
// Leer cadena
fgets(cadena, LONGITUD_CADENA, stdin);
// Nota: esto no tiene que ver con el algoritmo, simplemente remueve el salto
// de línea que es escaneada
cadena[strcspn(cadena, "\r\n")] = 0;
printf("La cadena invertida es: %s", invertir(cadena));
return 0;
}
/**
Invertir cadena en C
@author parzibyte
*/
char *invertir(char cadena[]) {
int longitud = strlen(cadena);
char temporal;
for (int izquierda = 0, derecha = longitud - 1; izquierda < (longitud / 2);
izquierda++, derecha--) {
temporal = cadena[izquierda];
cadena[izquierda] = cadena[derecha];
cadena[derecha] = temporal;
}
return cadena;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment