Menu
Coddy logo textTech

Cadenas como arreglos de char

Parte de la sección Lógica y Flujo del Journey de C de Coddy. Lección 12 de 63.

En C, no existe un tipo de dato de cadena (string) integrado como el que podrías encontrar en otros lenguajes de programación. En su lugar, las cadenas se representan como arreglos de caracteres. Este concepto fundamental es esencial para comprender cómo se maneja el texto en la programación en C.

Una cadena en C es simplemente una secuencia de caracteres almacenados en ubicaciones de memoria consecutivas. Para crear una cadena, se declara un arreglo de caracteres que sea lo suficientemente grande como para contener todos los caracteres que necesites, más un espacio adicional para un carácter de terminación especial.

char greeting[6];  // Puede contener 5 caracteres + terminador
char message[20]; // Puede contener hasta 19 caracteres + terminador

La forma más conveniente de trabajar con cadenas es inicializarlas directamente con un literal de cadena al declarar el arreglo. C maneja automáticamente los detalles de almacenar cada carácter en el arreglo:

char greeting[6] = "Hello";
// Esto almacena: 'H', 'e', 'l', 'l', 'o', más un terminador especial

También puedes dejar que C determine automáticamente el tamaño del array omitiendo la especificación del tamaño al inicializarlo con un literal de cadena:

char greeting[] = "Hello";  // C automáticamente establece este tamaño en 6

Comprender que las cadenas son arreglos de caracteres es crucial porque explica cómo C maneja los datos de texto y te prepara para trabajar con funciones de manipulación de cadenas que operan sobre estos arreglos de caracteres.

challenge icon

Desafío

Fácil

Escribe un programa en C que demuestre cómo crear y trabajar con matrices de caracteres para almacenar cadenas. Tu programa debe:

  1. Declarar una matriz de caracteres llamada greeting con espacio suficiente para contener la cadena "Hello" (recuerda tener en cuenta el terminador nulo)
  2. Inicializar la matriz greeting con el literal de cadena "Hello"
  3. Declarar una segunda matriz de caracteres llamada message con 20 elementos
  4. Inicializar la matriz message con el literal de cadena "Welcome"
  5. Declarar una tercera matriz de caracteres llamada word sin especificar el tamaño, y permitir que C determine automáticamente el tamaño al inicializarla con "Programming"
  6. Imprimir las tres cadenas usando printf con el especificador de formato %s
  7. Imprimir el tamaño de cada matriz usando sizeof para demostrar cuánta memoria ocupa cada matriz de caracteres

Tu salida debe mostrar los resultados con el siguiente formato:

greeting: Hello
message: Welcome
word: Programming
Size of greeting: 6
Size of message: 20
Size of word: 12

Este desafío comprueba tu comprensión de cómo declarar matrices de caracteres para almacenar cadenas, cómo los literales de cadena terminan automáticamente en nulo cuando se asignan a matrices de caracteres y cómo C calcula automáticamente los tamaños de las matrices cuando omites la especificación del tamaño durante la inicialización.

Pruébalo tú mismo

#include <stdio.h>

int main() {
    // TODO: Escribe tu código aquí
    // Declara e inicializa los arreglos de caracteres como se especifica en el desafío
    
    // Imprime las cadenas y sus tamaños
    printf("greeting: %s\n", greeting);
    printf("message: %s\n", message);
    printf("word: %s\n", word);
    printf("Size of greeting: %lu\n", sizeof(greeting));
    printf("Size of message: %lu\n", sizeof(message));
    printf("Size of word: %lu\n", sizeof(word));

    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de C online