Bonjour,

Voici un programme qui réalise la conversion d'une string minuscule en majuscule :

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
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
 
int 
main(void)
{
    while (true)
    {
	signed char c = getchar();
        if (c == '\n')
            break;
 
        switch (c)
        {
          case 'é' :
            putchar('É');
            break;
 
          case 'è' :
            putchar('È');
            break;
 
          case 'ê' :
            putchar('Ê');
            break;
 
          default:
            putchar(toupper(c));
            break;
        }
    }
    putchar('\n');
 
    return EXIT_SUCCESS;
}
Lorsque je saisi un caractere sur stdin, il le compare à '\n' pour stopper la boucle s'il vaut stdin et réalise la conversion en majuscule sinon.

Je ne comprend pas pourquoi les caractères en majuscule resultant de la conversion sont affiché apres mon CR (Carrier Return). Voici un exemple d'utilisation:

kal@kal-laptop ~ $ ./caracteres
caractères accentués
CARACTÈRES ACCENTUÉS
Bien que cela ne me dérange pas, je ne comprend pas pourquoi c'est ainsi et pas comme ça :

cCaArRaAcCtTèÈrReEsS aAcCcCeEnNtTuUéÉsS
Merci d'avance