IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Conversion d'un caractère en minuscule!!


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Conversion d'un caractère en minuscule!!
    Bonjour,
    je souhaite faire un programme en C qui permet la conversion d'un caractère en minuscule ou d'un message d'erreur lors que le caractere saisi est en majucule.

    On m'a parlé de la commande tolower sur la bibliothèque ctype.h mais le problème est que je ne comprends pas la syntaxe donnée:

    #include <ctype.h>
    int toupper (int c);int tolower (int c);

    merci beaucoup pour votre aide!

  2. #2
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Bonjour et bienvenue sur les forums de Developpez

    Qu'est-ce que tu ne comprend pas?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char maj ;
    char min = 'e' ;
    maj = toupper(min);
    Nas'

  3. #3
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    TOUPPER(3) Manuel du programmeur Linux TOUPPER(3)

    NOM
    toupper, tolower - Conversion de lettres en majuscules ou minuscules.

    SYNOPSIS
    #include <ctype.h>

    int toupper (int c);
    int tolower (int c);

    DESCRIPTION
    toupper() convertit la lettre c en majuscule si c'est possible.

    tolower() convertit la lettre c en minuscule si c'est possible.

    VALEUR RENVOYÉE
    La valeur renvoyée est celle de la lettre convertie, ou bien c si la conversion n'etait pas possible.

    Si c n'est ni un caractère non-signé, ni EOF, le comportement de ces fonctions est imprévisible.

    CONFORMITÉ
    ANSI C, BSD 4.3

    BOGUES
    La définition de "majuscule" et "minuscule" dépend de la localisation. Par exemple la localisation "C" par défaut ne
    connait rien concernant les accents, et n'effectue alors aucune conversion.

    Dans certaines langues, des lettres minuscules n'ont pas d'équivalent majuscule.

    VOIR AUSSI
    isalpha(3), setlocale(3), locale(7)

    TRADUCTION
    Christophe Blaess, 1996-2003.

    LDP 21 juillet 2003 TOUPPER(3)
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    le problème est ce que je voudrai pas avoir a rentrer toutes les lettres dans le programme!!

  5. #5
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Fais une boucle :

    Nas'

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par feanor77
    le problème est ce que je voudrai pas avoir a rentrer toutes les lettres dans le programme!!
    Fait de ton mieux, et on verra après... Poste ton code.
    Pas de Wi-Fi à la maison : CPL

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <stdio.h>
    #include <ctype.h>
     
    void main ()
    {
         char maj, min;
         printf ("veuillez saisir un caractere: ");
         min=getchar ();
         maj=toupper(min);
         printf ("le caractere est: );
    }

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par feanor77
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <stdio.h>
    #include <ctype.h>
     
    void main ()
    {
         char maj, min;
         printf ("veuillez saisir un caractere: ");
         min=getchar ();
         maj=toupper(min);
         printf ("le caractere est: );
    }
    Pas de Wi-Fi à la maison : CPL

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    désolé" mais je débute.

  10. #10
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par feanor77
    désolé" mais je débute.
    Peu importe. Une question ?
    Pas de Wi-Fi à la maison : CPL

  11. #11
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h> 
    #include <ctype.h> 
     
    int main () 
        { 
          int maj, min; 
              printf ("veuillez saisir un caractere: "); 
              min=getchar (); 
              maj=toupper(min); 
              printf ("le caractere est: "); 
              return 0;
          }
    apres correction

  12. #12
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par feanor77
    #include <stdio.h>
    #include <ctype.h>

    int main ()
    {
    int maj, min;
    printf ("veuillez saisir un caractere: ");
    min=getchar ();
    maj=toupper(min);
    printf ("le caractere est: ");
    return 0;
    }
    apres correction
    Ok, mais c'est pas fini.

    Concenant printf(), qu'est ce que tu ne comprends pas ?

    Quel est ton cours / livre / site de référence ? Ne me dis pas que tu apprends au hasard en jetant des mots dans l'éditeur de texte jusqu'à ce que ça fonctionne ?

    D'autre part, je t'ai demandé de terminer tes lignes par '\n'. Je parle aux murs ou quoi ?

    Si tu ne comprends pas ce que je dis, demande des précisions.

    Mais si tu t'attends à ce qu'on écrive le code à ta place, tu es mal tombé...
    Pas de Wi-Fi à la maison : CPL

  13. #13
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    je suis en BTS IG option ARLE (réseaux) et c'est un exo a faire!!
    Sinon je n'ai pas de livres, je me debrouille tout seul et c'est pour ca que je galere!

  14. #14
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par feanor77
    je suis en BTS IG option ARLE (réseaux) et c'est un exo a faire!!
    Sinon je n'ai pas de livres, je me debrouille tout seul et c'est pour ca que je galere!
    Et tu n'as pas de cours ? Alors je te conseille de lire ceci :

    http://www-clips.imag.fr/commun/bernard.cassagne/Introduction_ANSI_C.html
    Pas de Wi-Fi à la maison : CPL

  15. #15
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    On peut trouver pas mal de cours sur le net, faut chercher c'est tout, on ne peut pas apprendre le C sans un minimum de ref:

    http://c.developpez.com/cours/
    http://www.planete-c.com/index.php?corps=liens
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  16. #16
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    bon bah, je vais essayer!
    merci beaucoup pour votre aide!
    @+


  17. #17
    Membre habitué Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par feanor77
    le problème est ce que je voudrai pas avoir a rentrer toutes les lettres dans le programme!!
    tu peux faire une fonction qui prend une chaine de caractere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include <ctype.h>
    #include <string.h>
     
    char * minuscule(char * str)
    {
    int i;
    int lg = strlen(str);
    for(i=0;i<lg;i++)
       str[i]=tolower(str[i]);
     
    return str;
    }
     
     
    int main(void)
    {
    char mot[100];
     
    strcpy(mot,"Il Etait UNE FOis");  
    printf("%s",minuscule(mot));    
     
    system("pause");
    return 0;
    }

  18. #18
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    merci beaucoup

  19. #19
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par semaj_james
    tu peux faire une fonction qui prend une chaine de caractere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    char * minuscule(char * str)
    {
    int i;
    int lg = strlen(str);
    for(i=0;i<lg;i++)
       str[i]=tolower(str[i]);
     
    return str;
    }
    Pas efficace, tu parcours 2 fois la chaine. D'autre part, strlen() retourne un size_t et non un int...

    D'autre part, on est pas là pour montrer qu'on sait faire ce que demande les gens, ça, on s'en doute, sinon, on ne serait pas là, mais pour les aider à trouver par eux même.

    C'est nettement plus difficile, on se fait engueuler et tout.. Mais c'est pas grave... L'important, c'est que le questionneur progesse.
    Pas de Wi-Fi à la maison : CPL

  20. #20
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    c'est clair mais j'ai deja pas mal avancé mais ce n'est toujours pas ca!

Discussions similaires

  1. Conversion Entier vers Caractère.
    Par -= Cobra =- dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/12/2006, 11h05
  2. Conversion EBCDIC en caractères lisibles
    Par babylone7 dans le forum Général Java
    Réponses: 2
    Dernier message: 25/08/2006, 09h53
  3. Conversion format numérique/caractère
    Par Laverdure_mt dans le forum Access
    Réponses: 1
    Dernier message: 16/08/2006, 14h49
  4. comparaiison chaine de caractère majuscule/minuscule
    Par dev7 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/05/2006, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo