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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| #include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#include <wchar.h>
void warning(void);
void error(void);
void vigenere (void);
void chiffrement (void);
void dechiffrement (void);
wchar_t Alpha[] = {L"abcdefghijklmnopqrstuvwxyz@0123456789 ,;:!?.%c133%c130%c138%c136%c151%c135%c147%c131"};
wchar_t Cle []={};
wchar_t Acoder [1024], cod[1024];
int i, t, u;
int PosCle =0;
wchar_t *PosLetCle; //pointeur sur la position de la lettre cle
wchar_t *Pos; //Pointeur sur la position de la lettre dans la pgrase
int NouvPos=0; //nouvelle position qui determinera la lettre correspondant au chiffrement
//int choix, nombre;
wchar_t LetCle; // la lettre dans la clé de chiffrement
wchar_t Let, Lettre; //La lettre dans la phrae à coder
int main()
{
wprintf (L"\n Veuillez saisir la phrase %c crypter:\n ", 133 );
wscanf(L"%ls", Acoder);
wprintf (L"\n Entrez la cle de codage de la phrase: \n" );
wscanf(L"%ls", Cle);
t = wcslen(Acoder);// longueur de la phrase saisie au clavier
u = wcslen(Cle); //Longueur de la clé de chiffrement
for (i=0; i<t ; i++)
{
PosCle= PosCle+1;
if (PosCle>u)
PosCle=1;
/* on determine quelle est la lettre cle et sa position dans l'alphabet que nous avons définit en prenant en compte les caractère acceutué */
LetCle = Cle[PosCle];
PosLetCle = wcschr(Alpha, LetCle); //on renvoie un pointeur sur la première occurence de Letclé que l'on trouve dans Alpha equivaut a strchr en C
/* on determine la position de la lettre a coder et le decalage a appliquer */
Let = Acoder[i];
Pos = wcschr(Alpha, Let);
NouvPos = *Pos + *PosLetCle;
if (NouvPos > 52)
NouvPos = NouvPos - 52;
cod[i]= Alpha[NouvPos];
}
cod[i]= '\0';
wprintf(L"la phrase codee est: %ls\n", cod);
} |
Partager