Bonjour,
j' essais de me familariser avec des fonctions qui sont citées dans le titre.
On m' a dit que atoi() converti les characteres en entiers, mais quand j' ecris:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 int c;
  char msg;
  while (EOF !=(msg=getchar())){
    msg=getchar();
    c=atoi(&msg);
    // putchar(c);
    printf ("%d ",c )  ;
}
il ne renvoit que des zeros. Je comprend pas pourquoi.
Comme le professeur m' a dit la valeure de getchar() est une caractere qu' on introduit à partir de la clavier.Mais si c' est vrai, voilà un programme qui fait le chiffrement de Cesare:

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
 
 #include <stdio.h>
#include <stdlib.h>
 
    int main(int argc, char * argv[]) {
    int C1, key;
    if(argc < 2) 
      {printf("Caesar <argument>\n");
      exit(-1);}
    key=atoi(argv[1]);
    while (EOF != (C1 = getchar())) {
      if(C1 >= 'A' && C1 <= 'Z')  putchar('A'+(26+C1-'A'+key)%26);
      else if(C1 >= 'a' && C1 <= 'z') putchar('a'+(26+C1-'a'+key)%26);
      else putchar(C1);
    }
 
    return 0;
}
Mais ici la variable C1 est de type int. Et bien comment la variable de type integer recoit la valeure de char?.