Concatenar char y string en C

Concatenar char y string en C

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.

Función para concatenar char y string en C

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.

Ejemplo: concatenar carácter a cadena en C

Concatenar char y string en C
Concatenar char y string en C

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

1 comentario en “Concatenar char y string en C”

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *