Fácil C

Contando caracteres de uma string

Enunciado

Escreva um programa que declare uma string literal "Programacao em C" e use a função strlen para exibir o número de caracteres (sem contar o terminador nulo).

Requisitos

  • Inclua <stdio.h> e <string.h>.
  • Use strlen para obter o comprimento.
  • Imprima o resultado no formato Comprimento: X.

Código inicial

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

int main(void) {
    // Declare a string e use strlen
    return 0;
}

Saída esperada

Comprimento: 16
Ver dica

Lembre-se de que strlen retorna o número de caracteres antes do '\0'.

Mostrar solução
#include <stdio.h>
#include <string.h>

int main(void) {
    const char *texto = "Programacao em C";
    size_t comprimento = strlen(texto);
    printf("Comprimento: %zu\n", comprimento);
    return 0;
}

Passo a passo

  1. Incluímos <stdio.h> para printf e <string.h> para strlen.
  2. Declaramos const char *texto apontando para a string literal. O const evita modificações acidentais.
  3. Chamamos strlen(texto), que percorre a string até o '\0' e retorna a quantidade de caracteres.
  4. Armazenamos o resultado em size_t (tipo retornado por strlen).
  5. Imprimimos com %zu, o especificador correto para size_t.

Por que funciona

strlen conta os caracteres até encontrar o terminador nulo. A string "Programacao em C" tem 16 caracteres (contando espaços) e o compilador adiciona '\0' no final, que não é contado.

Erros comuns

  • Usar %d em vez de %zu: o programa compila com aviso e pode imprimir valor errado.
  • Esquecer de incluir <string.h>: o compilador pode assumir que strlen retorna int e gerar comportamento indefinido.
  • Declarar char texto[] = "..." e depois tentar modificar: se for literal, é somente leitura.

Outra forma de resolver

Poderia contar manualmente com um laço while (texto[i] != '\0') i++;. É útil para entender o funcionamento, mas strlen é mais idiomático.

Saída esperada

Comprimento: 16