AnyCompiler

Strings

Diferente de todos os outros cursos deste site, C não tem nenhum tipo String. Um string em C é um array de char terminado por um byte nulo ('\0'), e functions como strlen, strcat, e strcpy de <string.h> funcionam todas escaneando para frente até encontrar esse 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 anexou a greeting no mesmo lugar — assume que o buffer de destino (declarado como char[20] aqui) tem espaço suficiente restante tanto para o conteúdo existente quanto para a adição, mais o terminador nulo. C nunca verifica isso para você; escrever além do fim de um buffer é a categoria mais comum de bug em C, e é por isso que o aviso anterior sobre undefined behavior importa especialmente aqui.

A seguir: structs — agrupar campos relacionados, o único mecanismo do C para tipos de dados definidos pelo usuário.

Practice exercise

Dado char s[] = "rust lang", imprima seu comprimento usando strlen de <string.h>.