getchar(),atoi() et putchar()
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:
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:
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?.