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
strlenpara 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
- Incluímos
<stdio.h>paraprintfe<string.h>parastrlen. - Declaramos
const char *textoapontando para a string literal. Oconstevita modificações acidentais. - Chamamos
strlen(texto), que percorre a string até o'\0'e retorna a quantidade de caracteres. - Armazenamos o resultado em
size_t(tipo retornado porstrlen). - Imprimimos com
%zu, o especificador correto parasize_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
%dem vez de%zu: o programa compila com aviso e pode imprimir valor errado. - Esquecer de incluir
<string.h>: o compilador pode assumir questrlenretornainte 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