Menu
Coddy logo textTech

Utilisation de strlen()

Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 15 sur 63.

Vous avez appris à lire des chaînes de caractères à partir de la saisie de l'utilisateur, mais vous avez maintenant besoin d'un moyen de déterminer la longueur de ces chaînes. Le langage C fournit la fonction strlen() de la bibliothèque <string.h> spécifiquement à cet effet.

La fonction strlen() compte le nombre de caractères dans une chaîne, s'arrêtant lorsqu'elle atteint le terminateur nul \0. Il est important de noter qu'elle ne doit pas inclure le terminateur nul dans son décompte - elle ne compte que les caractères visibles réels.

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

char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length);  // Affiche : Length: 5

Pour utiliser strlen(), vous devez inclure l'en-tête <string.h> en haut de votre programme. La fonction prend une chaîne de caractères comme argument et retourne un entier représentant le nombre de caractères avant le terminateur nul.

Cette fonction est particulièrement utile lorsque vous avez besoin de savoir quel espace occupe une chaîne de caractères, de valider la longueur d'une entrée ou d'effectuer des opérations qui dépendent de la taille de la chaîne. C'est l'une des fonctions de chaîne de caractères les plus couramment utilisées en programmation C.

challenge icon

Défi

Facile

Écrivez un programme en C qui lit plusieurs mots à partir de l'entrée et analyse leurs longueurs en utilisant la fonction strlen(). Votre programme doit :

  1. Lire un entier n représentant le nombre de mots à traiter
  2. Pour chacun des n mots :
    • Déclarer un tableau de caractères de 50 éléments pour stocker le mot
    • Lire le mot en utilisant scanf
    • Utiliser strlen() pour calculer la longueur du mot
    • Afficher le mot et sa longueur dans le format spécifié
  3. Après avoir traité tous les mots, calculer et afficher le nombre total de caractères de tous les mots
  4. Trouver et afficher la longueur du mot le plus long rencontré

N'oubliez pas d'inclure l'en-tête <string.h> pour utiliser la fonction strlen().

Votre sortie doit afficher les résultats dans le format suivant :

Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]

Par exemple, si l'entrée est :

3
hello
programming
C

Votre sortie doit être :

Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11

Ce défi teste votre compréhension de l'utilisation de strlen() pour mesurer la longueur des chaînes, du traitement de plusieurs chaînes avec des boucles et de l'exécution de calculs basés sur les données de longueur de chaîne.

Aide-mémoire

La fonction strlen() de <string.h> compte le nombre de caractères dans une chaîne, à l'exclusion du terminateur nul \0 :

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

char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length);  // Affiche : Length: 5

La fonction prend une chaîne de caractères comme argument et renvoie un entier représentant le nombre de caractères visibles avant le terminateur nul.

Essayez vous-même

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

int main() {
    // Lire le nombre de mots
    int n;
    scanf("%d", &n);
    
    // Variables pour suivre les totaux
    int total_characters = 0;
    int max_length = 0;
    
    // À FAIRE : Écrivez votre code ici
    // Traiter chaque mot à l'aide d'une boucle
    // Pour chaque mot :
    // - Déclarer un tableau de caractères avec 50 éléments
    // - Lire le mot en utilisant scanf
    // - Calculer la longueur en utilisant strlen()
    // - Afficher le mot et sa longueur
    // - Mettre à jour total_characters et max_length
    
    // Afficher les résultats finaux
    printf("Total characters: %d\n", total_characters);
    printf("Longest word length: %d\n", max_length);
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow