Uso de strlen()
Parte de la sección Logic & Flow del Journey de C de Coddy — lección 15 de 63.
Has aprendido a leer cadenas de texto de la entrada del usuario, pero ahora necesitas una forma de determinar qué tan largas son esas cadenas. C proporciona la función strlen() de la biblioteca <string.h> específicamente para este propósito.
La función strlen() cuenta el número de caracteres en una cadena, deteniéndose cuando llega al terminador nulo \0. Es importante destacar que no incluye el terminador nulo en su cuenta; solo cuenta los caracteres visibles reales.
#include <stdio.h>
#include <string.h>
char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length); // Imprime: Length: 5Para usar strlen(), debes incluir el encabezado <string.h> en la parte superior de tu programa. La función toma una cadena como argumento y devuelve un entero que representa el número de caracteres antes del terminador nulo.
Esta función es particularmente útil cuando necesitas saber cuánto espacio ocupa una cadena, validar la longitud de la entrada o realizar operaciones que dependen del tamaño de la cadena. Es una de las funciones de cadena más utilizadas en la programación en C.
Desafío
FácilEscribe un programa en C que lea varias palabras de la entrada y analice sus longitudes utilizando la función strlen(). Tu programa debe:
- Leer un entero
nque represente el número de palabras a procesar - Para cada una de las
npalabras:- Declarar un arreglo de caracteres con 50 elementos para almacenar la palabra
- Leer la palabra usando
scanf - Usar
strlen()para calcular la longitud de la palabra - Imprimir la palabra y su longitud en el formato especificado
- Después de procesar todas las palabras, calcular e imprimir el número total de caracteres de todas las palabras
- Encontrar e imprimir la longitud de la palabra más larga encontrada
Recuerda incluir el encabezado <string.h> para usar la función strlen().
Tu salida debe mostrar los resultados en el siguiente formato:
Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]Por ejemplo, si la entrada es:
3
hello
programming
CTu salida debe ser:
Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11Este desafío pone a prueba tu comprensión del uso de strlen() para medir longitudes de cadenas, el procesamiento de múltiples cadenas con bucles y la realización de cálculos basados en los datos de longitud de las cadenas.
Hoja de referencia
La función strlen() de <string.h> cuenta el número de caracteres en una cadena, excluyendo el terminador nulo \0:
#include <stdio.h>
#include <string.h>
char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length); // Imprime: Length: 5La función toma una cadena como argumento y devuelve un entero que representa el número de caracteres visibles antes del terminador nulo.
Pruébalo tú mismo
#include <stdio.h>
#include <string.h>
int main() {
// Leer el número de palabras
int n;
scanf("%d", &n);
// Variables para rastrear los totales
int total_characters = 0;
int max_length = 0;
// TODO: Escribe tu código aquí
// Procesar cada palabra usando un bucle
// Para cada palabra:
// - Declarar un arreglo de caracteres con 50 elementos
// - Leer la palabra usando scanf
// - Calcular la longitud usando strlen()
// - Imprimir la palabra y su longitud
// - Actualizar total_characters y max_length
// Imprimir los resultados finales
printf("Total characters: %d\n", total_characters);
printf("Longest word length: %d\n", max_length);
return 0;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Logic & Flow
1Fundamentos de Punteros
¿Qué es un puntero?Declaración de punterosEl operador de dirección (&)El operador de desreferencia (*)Punteros NULLResumen: Conceptos básicos de punteros4Proyecto: Utilidad de texto simple
Descripción general del proyectoContar caracteres2Punteros y Arrays
Nombres de Arrays como PunterosElementos de un Array - PunterosAritmética de PunterosComparación de PunterosResumen: Recorrido de Arrays con Punteros5Punteros y funciones
Paso por valorPasar punteros a funcionesModificar variables mediante punterosUn ejemplo clásico: Intercambio (Swap)Pasar arrays a funcionesResumen: Argumentos de punteros a funciones3Arreglos de caracteres y cadenas
Cadenas como arreglos de charEl terminador nuloEntrada de cadenas con scanfUso de strlen()Uso de strcpy()Uso de strcat()Uso de strcmp()Resumen: Funciones básicas de cadenas