AnyCompiler

Strings

A diferencia de todos los demás cursos de este sitio, C no tiene ningún tipo String en absoluto. Un string de C es un array de char terminado por un byte nulo ('\0'), y funciones como strlen, strcat y strcpy de <string.h> funcionan todas escaneando hacia adelante hasta que encuentran ese terminador.

#include <stdio.h>
#include <string.h>

int main() {
    char greeting[20] = "Hello";
    strcat(greeting, ", world!");
    printf("%s\n", greeting);
    printf("Length: %zu\n", strlen(greeting));
    return 0;
}
Output
Hello, world!
Length: 13

strcat agregó a greeting en el mismo lugar — asume que el buffer de destino (declarado como char[20] aquí) tiene suficiente espacio restante tanto para el contenido existente como para la adición, más el terminador nulo. C nunca verifica eso por ti; escribir más allá del final de un buffer es la categoría más común de bug en C, y por eso la advertencia anterior sobre undefined behavior importa especialmente aquí.

A continuación: structs — agrupar campos relacionados, el único mecanismo de C para tipos de datos definidos por el usuario.

Practice exercise

Dado char s[] = "rust lang", imprime su longitud usando strlen de <string.h>.