71 lines
2.6 KiB
C
71 lines
2.6 KiB
C
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
/* Prend en parametre un entier et un entier a additionner */
|
||
|
int indexcesar(int index, int cesar){
|
||
|
index += cesar;
|
||
|
if(index > 25)
|
||
|
{
|
||
|
index -= 26;
|
||
|
}
|
||
|
return index;
|
||
|
}
|
||
|
|
||
|
int main(int argc, char const *argv[])
|
||
|
{
|
||
|
int cesar = 1;
|
||
|
|
||
|
/* Creation du tableau contenant toutes les lettres de l'alphabet */
|
||
|
char alphabetMajuscule[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
|
||
|
char alphabetMinuscule[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
|
||
|
|
||
|
/* Creation d'un pointeur de fichier */
|
||
|
FILE* stream = fopen("Etape2.bin","r");
|
||
|
|
||
|
/* S'il y a un probleme dans l'ouverture du fichier renvoie une erreur */
|
||
|
if (ferror(stream))
|
||
|
{
|
||
|
perror("Il y a un probleme dans l'ouverture du fichier !");
|
||
|
return EXIT_FAILURE;
|
||
|
}
|
||
|
|
||
|
/* Creation d'un pointeur de charactere qui alloue en memoire la taille d'un caractere*/
|
||
|
char* zone_char = malloc(sizeof(char));
|
||
|
|
||
|
/* Tant qu'on atteint pas la fin du fichier */
|
||
|
while(!feof(stream))
|
||
|
{
|
||
|
/* lecture d'un caractere */
|
||
|
if (fread(zone_char, sizeof(char), 1, stream) != 0)
|
||
|
{
|
||
|
/* Parcours du tableau pour retrouver la position du caractere*/
|
||
|
int index = 0;
|
||
|
for (index; index <= 25; index++)
|
||
|
{
|
||
|
/* si le caractere est une majuscule */
|
||
|
if (*zone_char == alphabetMajuscule[index])
|
||
|
{
|
||
|
/* On rajoute le deplacement dans l'alphabet de cesar et on sort de la boucle */
|
||
|
index = indexcesar(index, cesar);
|
||
|
printf("%c", alphabetMajuscule[index]);
|
||
|
break;
|
||
|
}
|
||
|
/* si le caractere est une minuscule */
|
||
|
if (*zone_char == alphabetMinuscule[index])
|
||
|
{
|
||
|
/* On rajoute le deplacement dans l'alphabet de cesar et on sort de la boucle */
|
||
|
index = indexcesar(index, cesar);
|
||
|
printf("%c", alphabetMinuscule[index]);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
/* si la boucle ne s'est jamais arretee, alors ce n'est pas une lettre sinon c'est une lettre et on montre sa nouvelle valeur */
|
||
|
if (index == 26) {
|
||
|
printf("%c", *zone_char);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
fclose(stream);
|
||
|
free(zone_char);
|
||
|
return EXIT_SUCCESS;
|
||
|
}
|