Usando strlen()
Parte da seção Logic & Flow do Journey de C da Coddy — lição 15 de 63.
Você aprendeu como ler strings da entrada do usuário, mas agora você precisa de uma maneira de determinar o comprimento dessas strings. C fornece a função strlen() da biblioteca <string.h> especificamente para esse propósito.
A função strlen() conta o número de caracteres em uma string, parando quando alcança o terminador nulo \0. Importante: ela não inclui o terminador nulo em sua contagem - ela conta apenas os caracteres visíveis reais.
#include <stdio.h>
#include <string.h>
char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length); // Imprime: Length: 5Para usar strlen(), você deve incluir o cabeçalho <string.h> no topo do seu programa. A função recebe uma string como seu argumento e retorna um inteiro representando o número de caracteres antes do terminador nulo.
Esta função é particularmente útil quando você precisa saber quanto espaço uma string ocupa, validar o comprimento da entrada ou realizar operações que dependem do tamanho da string. É uma das funções de string mais comumente usadas na programação C.
Desafio
FácilEscreva um programa em C que leia várias palavras da entrada e analise seus comprimentos usando a função strlen(). Seu programa deve:
- Ler um número inteiro
nrepresentando a quantidade de palavras a serem processadas - Para cada uma das
npalavras:- Declarar um array de caracteres com 50 elementos para armazenar a palavra
- Ler a palavra usando
scanf - Usar
strlen()para calcular o comprimento da palavra - Imprimir a palavra e seu comprimento no formato especificado
- Após processar todas as palavras, calcular e imprimir o número total de caracteres de todas as palavras
- Encontrar e imprimir o comprimento da palavra mais longa encontrada
Lembre-se de incluir o cabeçalho <string.h> para usar a função strlen().
Sua saída deve exibir os resultados no seguinte formato:
Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]Por exemplo, se a entrada for:
3
hello
programming
CSua saída deve ser:
Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11Este desafio testa sua compreensão sobre o uso de strlen() para medir comprimentos de strings, o processamento de múltiplas strings com loops e a realização de cálculos baseados em dados de comprimento de strings.
Folha de consulta
A função strlen() de <string.h> conta o número de caracteres em uma string, excluindo o terminador nulo \0:
#include <stdio.h>
#include <string.h>
char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length); // Imprime: Length: 5A função recebe uma string como seu argumento e retorna um inteiro representando o número de caracteres visíveis antes do terminador nulo.
Experimente você mesmo
#include <stdio.h>
#include <string.h>
int main() {
// Lê o número de palavras
int n;
scanf("%d", &n);
// Variáveis para rastrear os totais
int total_characters = 0;
int max_length = 0;
// TODO: Escreva seu código aqui
// Processa cada palavra usando um loop
// Para cada palavra:
// - Declara um array de caracteres com 50 elementos
// - Lê a palavra usando scanf
// - Calcula o comprimento usando strlen()
// - Imprime a palavra e seu comprimento
// - Atualiza total_characters e max_length
// Imprime os resultados finais
printf("Total characters: %d\n", total_characters);
printf("Longest word length: %d\n", max_length);
return 0;
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Logic & Flow
1Fundamentos de Ponteiros
O que é um Ponteiro?Declarando PonteirosO Operador de Endereço (&)O Operador de Desreferência (*)Ponteiros NULLRecapitulação: Fundamentos de Ponteiros4Projeto: Utilitário de Texto Simples
Visão Geral do ProjetoContando Caracteres2Ponteiros e Arrays
Nomes de Arrays como PonteirosElementos de Array - PonteirosAritmética de PonteirosComparando PonteirosRecapitulação: Percorrendo Arrays com Ponteiros5Ponteiros e Funções
Passagem por ValorPassando Ponteiros para FunçõesModificando Variáveis via PonteirosUm Exemplo Clássico: SwapPassando Arrays para FunçõesRecapitulação: Ponteiros como Argumentos3Arrays de Caracteres e Strings
Strings como Arrays de charO Terminador NuloEntrada de Strings com scanfUsando strlen()Usando strcpy()Usando strcat()Usando strcmp()Recapitulação: Funções Básicas de Strings6Gerenciamento de Memória
Memória Stack vs. HeapAlocação Dinâmica - malloc()Usando sizeof() para AlocaçãoVerificando Falhas de AlocaçãoLiberando Memória com free()Alocando com calloc()Recapitulação: Array Dinâmico9Projeto: Cadastro Simples de Contatos
Projeto: Definir a Struct de ContatoFunção para Criar um Contato