[C++] Conversion minuscule<--> majuscule
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

[C++] Conversion minuscule<--> majuscule



  1. #1
    Lechero

    [C++] Conversion minuscule<--> majuscule


    ------

    Bonjour à tous,

    je dois créer un programme qui lit un caractère (type char) et qui renvoi son équivalent en majuscule/minuscule selon la lettre entrée.

    Par exemple, si on entre a, la lettre sortante est A, et affiche "la majuscule de 'a' est 'A'".
    Si on entre -5, on doit dire que la valeur lue n'est pas de type char.

    Je sais que les caractères sont codés en ASCII, par exemple que A+32 = a, B+32=b, c-32=C, etc...

    Mais je n'ai aucune idée de comment le coder... =(
    Comment récupérer le code ASCII de la lettre entrée ?

    Merci d'avance pour votre aide !

    -----
    A vaincre sans péril, on triomphe sans gloire (Corneille).

  2. #2
    fred1599

    Re : [C++] Conversion minuscule<--> majuscule

    Difficile de voir la difficulté, où j'ai pas bien compris, mais un type char est un entier.

    Je donne un exemple

    Code:
    int main(void)
    {
        char c = 'A';
        cout << dec << c+32 << endl; // renvoi 97
        return 0;
    }
    Pour détecter si c'est une minuscule ou majuscule, c'est simplement des conditions à placer.

    Pour vérifier que l'on a bien un caractère, il suffit de placer un bloc try-catch.

  3. #3
    Lechero

    Re : [C++] Conversion minuscule<--> majuscule

    Bonsoir,

    merci pour la réponse. Cependant, je n'ai aucun support de cours (sauf sur le formatage de données pour cout (setw, setfill, setprecision,...)), donc je ne vois pas comment faire pour remplacer une lettre minuscule par une majuscule, et vice versa.

    Avec ton exemple, je voudrais que le programme renvoi la lettre a
    A vaincre sans péril, on triomphe sans gloire (Corneille).

  4. #4
    ColonelCasey

    Re : [C++] Conversion minuscule<--> majuscule

    Salut,

    Enfaîte tu demandes à l'utilisateur d'entrée la lettre à convertir(avec cout)puis tu fait ta condition(if,else) si c'est une lettre mini alors mettre en maj, si
    c'est un lettre maj alors mettre en min sinon afficher erreur! Voila pour la conversion faut tu trouves un moyen de passer du minuscule au majuscule
    sachant que si la lettre entrer est un "a" si tu ajoute +1 à ta variable sa fait "b".

    Voila ta la réponse en dessous donc fait d abord par toi même est vérifie après mais fait le bien chez toi sinon sa sert à rien...

     Cliquez pour afficher

  5. A voir en vidéo sur Futura
  6. #5
    fred1599

    Re : [C++] Conversion minuscule<--> majuscule

    Voilà une solution qui gère l'erreur de type (pas besoin de try-catch finalement)

    Code:
    #include <cstdlib>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int trans(char c);
    
    int main(void)
    {
        char c = '-5';
        int r = trans(c);
        cout << r << endl;
        return 0;
    }
    
    int trans(char c)
    {
        int res;
    
        if(c>='a' && c<='z')
            res = c-32;
    
        else if(c>='A' && c<='Z')
            res = c+32;
    
        else
        {
            cout << "Error type" << endl;
            exit(EXIT_FAILURE);
        }
    
        return res;
    }

  7. #6
    Lechero

    Re : [C++] Conversion minuscule<--> majuscule

    Bonsoir,

    voilà ce que je sais :
    une lettre est de type char, et est codé par un entier en ASCII : de 65 à 90 pour les lettres allant de A à Z, et de 97 à 122 pour les lettres allant de a à z.

    Cependant, l'utilisateur rentre un caractère, donc un char.

    Ce que je veux savoir, c'est comment vérifier si ce char est une minuscule / majuscule / caractère, et ensuite le transformer et/ou afficher un message d'erreur.

    En gros, vérifier d'abord que le code ASCII du caractère entré est compris entre 65 et 90 ou 97 et 122, et ensuite effectuer la "conversion"

    P.S. : je n'ai pas encore regardé ta solution j'essaye de comprendre
    A vaincre sans péril, on triomphe sans gloire (Corneille).

  8. #7
    ColonelCasey

    Re : [C++] Conversion minuscule<--> majuscule

    Bah fred viens de te mettre la rep sous les yeux ^^' mais tu viens de donner la rep dans ta question! Je m'explique tu viens de dire vérifier que c'est entre 65 et 90;
    Bah il suffit de dire SI c'est compris entre 65 et 90 alors c'est un minuscule est donc effectué la conversion. Sachant que c'est le SI est réalisé en c++ pas le if(condition)
    va sur ce lien si tu sais pas comment sa marche http://www.siteduzero.com/informatiq...e-base-if-else
    Pour les maj c'est le même principe sinon (else) on affiche un msg d'erreur voila!
    En espérant t'avoir aider

  9. #8
    Lechero

    Re : [C++] Conversion minuscule<--> majuscule

    Bonsoir,

    merci pour vos réponses !

    Je sais comment marchent les tests (if,...), les boucles (while, for, ...).

    Ce que je ne comprends pas, en revanche, c'est comment on peut écrire (dans l'exemple de fred par exemple) : c-32, c étant un char (donc un caractère, une lettre). La conversion de la lettre en ASCII se fait donc "toute seule" ?

    P.S. : à part <iostream>, à quoi servent les deux autres directives ?
    Dernière modification par Lechero ; 07/02/2013 à 20h31.
    A vaincre sans péril, on triomphe sans gloire (Corneille).

  10. #9
    ColonelCasey

    Re : [C++] Conversion minuscule<--> majuscule

    Le type char permet enfaîte de stocker la valeur ASCII d'un caractère donc un nombre comme 65 ou 98; donc faire un char x=65
    est identique a char x=a; d'où les conditions différentes dans mon code et celui de fred. Qui lui met c compris entre 'A' et 'z',
    tu vois bien qu'il a utilisé les lettres donc les caractères directement, moi j'ai opter pour pour leur valeur ASCII et quand tu fais c-32 tu fait la valeur ASCII de c -32. la valeur étant par exemple 100 - 32 =68 tu obtient dans la table ASCII la lettre 'd'. Donc voie sa comme un chemin d'accès , dans un côté x=65 tu passes par la valeur ASCII, et de l'autre c=a tu passe directement par le caractère

  11. #10
    fred1599

    Re : [C++] Conversion minuscule<--> majuscule

    P.S. : à part <iostream>, à quoi servent les deux autres directives ?
    Euh oui le include <string> (autant pour moi) tu peux le dégager, par contre la cstdlib c'est pour l'utilisation de la fonction exit...

Discussions similaires

  1. Symbole D majuscule(différentielle?)
    Par leongartier dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 17/05/2012, 21h46
  2. de Majuscule à minuscules
    Par invite56822129 dans le forum Logiciel - Software - Open Source
    Réponses: 11
    Dernier message: 29/12/2007, 08h57