Menu
Coddy logo textTech

Convertir en majuscules

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

challenge icon

Défi

Facile

Étendez votre programme d'utilitaire de texte de la leçon précédente pour ajouter une fonctionnalité de conversion en majuscules. Votre programme doit :

  1. Inviter l'utilisateur à saisir une courte phrase en affichant : Enter a sentence: (pas de saut de ligne à la fin)
  2. Déclarer un tableau de caractères nommé sentence avec 200 éléments pour stocker la saisie
  3. Utiliser scanf avec le spécificateur de format %s pour lire un seul mot de l'utilisateur
  4. Afficher le mot stocké au format : You entered: [word]
  5. Utiliser strlen() pour calculer le nombre total de caractères dans le mot
  6. Afficher le nombre de caractères au format : Character count: [count]
  7. Afficher la longueur en utilisant strlen() au format : Length: [length]
  8. Parcourir chaque caractère du mot à l'aide d'une boucle pour compter les voyelles
  9. Pour chaque caractère, vérifier s'il s'agit d'une voyelle (a, e, i, o, u) en minuscules et en majuscules
  10. Maintenir un décompte des voyelles trouvées
  11. Afficher le nombre de voyelles au format : Vowel count: [count]
  12. Afficher Uppercase: puis utiliser une boucle pour convertir et afficher chaque caractère du mot en majuscules à l'aide de la fonction toupper()

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

À propos de toupper() :
La fonction toupper() de <ctype.h> convertit un seul caractère en son équivalent en majuscule. Si le caractère est déjà en majuscule ou n'est pas une lettre, il est renvoyé inchangé.
Exemple : toupper('a') renvoie 'A', et toupper('Z') renvoie 'Z'.
Vous pouvez l'utiliser à l'intérieur d'une boucle pour convertir chaque caractère un par un : printf("%c", toupper(sentence[i]));

Important : L'invite Enter a sentence: ne doit pas être suivie d'un saut de ligne. Utilisez printf("Enter a sentence: "); sans \n.

Votre sortie doit afficher les résultats au format suivant :

Enter a sentence: You entered: [word]
Character count: [count]
Length: [length]
Vowel count: [count]
Uppercase: [WORD]

Par exemple, si la saisie est :

Programming

Votre sortie devrait être :

Enter a sentence: You entered: Programming
Character count: 11
Length: 11
Vowel count: 3
Uppercase: PROGRAMMING

Ce défi s'appuie sur la leçon précédente en ajoutant une fonctionnalité de conversion en majuscules à l'aide de la fonction toupper() de la bibliothèque <ctype.h>. Vous devrez utiliser une boucle pour parcourir chaque caractère de la chaîne, le convertir en majuscule, puis afficher le résultat transformé.

Essayez vous-même

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

int main() {
    printf("Enter a sentence: \n");
    
    char sentence[200];
    scanf("%s", sentence);
    
    printf("You entered: %s\n", sentence);
    
    int char_count = strlen(sentence);
    printf("Character count: %d\n", char_count);
    
    int length = strlen(sentence);
    printf("Length: %d\n", length);
    
    int vowel_count = 0;
    for (int i = 0; i < strlen(sentence); i++) {
        char c = sentence[i];
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
            c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
            vowel_count++;
        }
    }
    
    printf("Vowel count: %d\n", vowel_count);
    
    return 0;
}

Toutes les leçons de Logic & Flow