Bonjour,
Je souhaite encoder une chaine de caractère, passer en argument, en ROT13.
Et encoder un fichier.txt, passer en argument et sauvegarder le resultat dans fichier.rot13
Je crois qu'il est possible d'utiliser l'API Win32, GIT et CMAKE mais je ne sais pas le faire.
J'ai fait 2 programmes mais j'aimerai bien faire un choix
1 - Chiffre
2 - Dechiffre
Voici ce que j'ai fait, avec beaucoup de difficulté.
Pouvez-vous m'aider pour la seconde partie, à savoir, quand c'est un fichier.txt qui est passé en argument.
Merci
CHIFFRAGE
Code C : 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 <stdio.h> #include <string.h> int main(int argc, char** argv) { char* MotACoder = argv[1]; int key = 13; // Toutes les lettres du Mot à Coder for (int n = 0, len = strlen(MotACoder); n < len; n++) { int currentLetter = MotACoder[n]; char cipher = currentLetter + key; // On vérifie que la lettre suivant ne dépassera pas 26 // Ou n'est pas une lettre ASCII // Si c'est le cas, on applique %26 pour revenir dans le groupe de lettre if ((currentLetter - 'a') + key > 26) { key = (currentLetter - 'a') + key) % 26; cipher = 'a' + key; } // On affiche le codage printf("%c", cipher); // On remet Key à 13 // On passe à la lettre suivante key = 13; } } printf("\n"); return 0; }
DÉCHIFFRAGE
Code C : 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 <stdio.h> #include <string.h> int main(int argc, char** argv) { char* MotACoder = argv[1]; int KeyRot13 = -13; // Toutes les lettres du Mot à Décoder for (int n = 0, len = strlen(MotACoder); n < len; n++) { int LettreActuelle = MotACoder[n]; char LettreDechiffre = LettreActuelle - KeyRot13; // On vérifie que la lettre suivant ne dépassera pas 26 // Ou n'est pas une lettre ASCII // Si c'est le cas, on applique %26 pour revenir dans le groupe de lettre if ((LettreActuelle - 'a') - KeyRot13 > 26) { KeyRot13 = (LettreActuelle - 'a') - KeyRot13) % 26; LettreDechiffre = 'a' + KeyRot13; } // On affiche le codage printf("%c", LettreDechiffre); // On remet KeyRot13 à -13 // On passe à la lettre suivante KeyRot13 = -13; } } printf("\n"); return 0; }
Partager