Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] Accent => Majuscule sans accent.

Comment faire ?

Sujet résolu
    23 octobre 2006 à 19:26:57

    Bonjour (nuit ?) !
    J'ai un petit problème !
    Voilà il s'agit d'une partie de mon code qui a pour but de :
    • Demander un mot
    • Si il y a un accent d'entrer, mettre la majuscule correspondant sans accent
    • Et mettre en majuscule si la lettre ne l'est pas




        scanf("%s", &neww);
        while(getchar() != '\n');

        for (i = 0; neww[i] != '\0'; i++)
        {
            if(neww[i] == 'é' || neww[i] == 'è' || neww[i] == 'ê')
            neww[i] = 'E';
            else if(neww[i] == 'à' || neww[i] == 'â')
            neww[i] = 'A';
            else if(neww[i] == 'ô')
            neww[i] = 'O';
            else if(neww[i] == 'î')
            neww[i] = 'I';
            else if(neww[i] == 'û')
            neww[i] = 'U';
            else
            neww[i] = toupper(neww[i]);
        }

        fprintf(dico, "%s\n", neww);
        printf(" Le mot %s est bien ajoute au dictionnaire.", neww);


    Seulement voilà : au printf(...),
    si j'entre un accent, il m'affiche un accent.
    Alors j'en besoin d'aide :euh: !

    Donc Merci d'avance à ceux qui répondront !
    • Partager sur Facebook
    • Partager sur Twitter
      23 octobre 2006 à 19:43:41

      scanf("%s", &neww);

      :-°FAUX
      scanf("%s", neww);
      :-°JUSTE
      • Partager sur Facebook
      • Partager sur Twitter
        23 octobre 2006 à 19:50:23

        Merci PianoPâriss !
        Mais ça règle pas mon problème :(
        Enfin bref merci quand même
        • Partager sur Facebook
        • Partager sur Twitter
          23 octobre 2006 à 19:56:01

          Tu peux aussi remplacer
          while(getchar() != '\n');

          par :
          fflush(stdout);


          Et puis peut-on avoir la déclaration de "neww"
          Je suppose que c'est :
          char neww[nb];

          Mais c'est pour être certain ^^

          [EDIT] Je te conseille de comparer les valeurs ASCII, c'est plus sûr ; ex :
          if(neww[i] == 130) /* Si neww[i] est égal à "é" */
          {
            /*...*/
          }


          [REEDIT] J'ai fais un programme très simple mais utile qui permet de connaître la valeur ASCII d'un caractère, je te le passe dans 5 min ^^ ( je vais rééditer ) ;)

          [REREEDIT] :D Tu peux le télécharger là : ICI
          • Partager sur Facebook
          • Partager sur Twitter
            23 octobre 2006 à 20:08:23

            Ah c'est bon j'ai trouvé !
            (Au fait en ASCII comme ça ça marche pas)

            Mais tu m'as donné une idée :
            Ainsi j'ai mit :
            if (neww[i]) == '\202'
            { ... }


            Et ça marche ! (J'ai mis la valeur octale du caractère !)

            Merci en tout cas ! Merci !
            EDIT : Et merci pour on programme (ça évite toujours d'aller se fourrer le nez dans sa table ASCII)
            • Partager sur Facebook
            • Partager sur Twitter

            [C] Accent => Majuscule sans accent.

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown