En este post sobre C te mostraré cómo concatenar un carácter y una cadena, es decir, agregar un tipo de dato char
a un tipo de dato char*
que no es otra cosa más que un arreglo de caracteres, ya que en C no existen las strings como tal.
Explicado con pocas palabras te enseñaré como agregar un char como 'a'
a una cadena como "Hol"
.
Aunque en otros lenguajes esto no tiene ninguna complejidad, en ANSI C hay que escribir un poco más de código.
Primero veamos la función que nos permitirá hacer esto. Lo que se hace dentro de la misma es crear una cadena temporal a partir del carácter, definiendo un arreglo de caracteres y agregando el \0
(carácter NULL
) al final del mismo para que sea una cadena válida.
Aquí básicamente estamos convirtiendo el char a string.
Luego se invoca a la función strcat
que va a concatenar nuestra cadena temporal (que solo tiene el char) a la cadena indicada.
// Nota: la cadena debería tener espacio suficiente para concatenar el carácter.
// Esta función no se encarga de evitar desbordamientos o cosas parecidas
// https://parzibyte.me/blog
void concatenarCharACadena(char c, char *cadena)
{
char cadenaTemporal[2];
cadenaTemporal[0] = c;
cadenaTemporal[1] = '\0';
strcat(cadena, cadenaTemporal);
}
De este modo vamos a tener el char agregado al final de la cadena. Fíjate en los comentarios de la función, sobre todo en lo que se refiere al espacio suficiente.
Ya te mostré el código de la función, ahora te enseñaré a usarla. El código completo junto con el uso del método dentro de main queda así:
#include <stdio.h>
#include <string.h>
#define MAXIMA_LONGITUD_CADENA 100
// Nota: la cadena debería tener espacio suficiente para concatenar el carácter.
// Esta función no se encarga de evitar desbordamientos o cosas parecidas
// https://parzibyte.me/blog
void concatenarCharACadena(char c, char *cadena)
{
char cadenaTemporal[2];
cadenaTemporal[0] = c;
cadenaTemporal[1] = '\0';
strcat(cadena, cadenaTemporal);
}
int main(int argc, char const *argv[])
{
char cadena[MAXIMA_LONGITUD_CADENA] = "Hol";
printf("Antes de concatenar: %s\n", cadena);
// Concatenar
char c = 'a';
concatenarCharACadena(c, cadena);
printf("Después de concatenar: %s\n", cadena);
return 0;
}
En la línea 19 declaramos la cadena, después de eso el ejemplo para concatenar está en la línea 22 y 23. Puedes invocar la función cuantas veces quieras, siempre y cuando la cadena tenga espacio suficiente.
Por cierto, recuerda que para usar strcat
necesitas importar a string.h, cosa que se está haciendo en la línea 2.
También te dejo un enlace para leer más sobre C en el blog de Parzibyte.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
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…
Esta web usa cookies.
Ver comentarios
Muchas gracias genio!