En este corto tutorial de C vamos a ver cómo eliminar el último carácter o última letra de una cadena.
Recuerda que en C las cadenas son un poco difíciles de manejar, ya que de hecho las mismas no existen pues estamos trabajando con arreglos de tipo carácter.
Pero bueno, veamos cómo eliminar la última letra de una string en ANSI C.
En C, las cadenas son arreglos de tipo char. El arreglo debe tener la longitud necesaria para guardar la cadena pero además debe tener un espacio extra para guardar el final de la cadena indicado por el carácter \0.
Entonces este carácter siempre estará al final de todas las cadenas. Por lo que para eliminar el último carácter simplemente vamos a colocar este terminador (null terminating character) en la longitud de la cadena menos 1.
Nota: recuerda que ya vimos cómo obtener la longitud de una cadena con C. Yo usaré strlen
para que esto sea simple.
Entonces el código para quitar la última letra queda así:
#include <stdio.h>
#include <string.h>
#define MAXIMA_LONGITUD_CADENA 1000
int main()
{
char cadena[MAXIMA_LONGITUD_CADENA] = "Parzibyte.me_";
printf("Antes de eliminar: '%s'\n", cadena);
cadena[strlen(cadena) - 1] = '\0';
printf("Despues de eliminar: '%s'\n", cadena);
return 0;
}
No olvides revisar si la longitud de la cadena es mayor a 0 en caso de que el usuario maneje la cadena o cosas similares.
También recuerda que puedes remover otros caracteres de la cadena en lugar de solo quitar el último.
Para terminar te dejo con más tutoriales de C en mi blog.
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…
Esta web usa cookies.