Bonjour ,
Je suis débutant en C et j'ai actuellement un problème avec ma fonction de cryptologie , en effet elle rajoute des caractères ...
Voici le code source :
et quand je l'utilise dans le main avec par exemple :
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
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 #include <stdio.h> #include <stdlib.h> #include <string.h> #define PASSWORD "frere" char* crypte(char* line) { int k = 0; int i = 0; char* cypher; cypher = malloc( sizeof(char) * strlen(line)); if( cypher == NULL ) return NULL; printf("len line = %d\n",strlen(line)); while(1) { if(line[k] == '\0' ) break; else { if(PASSWORD[i] == '\0') i = 0; printf("line[%d] = %c\n",k,line[k]); cypher[k] = line[k] ^ PASSWORD[i]; printf("cypher[%d] = %c\n",k,cypher[k]); printf("len cypher = %d\n",strlen(cypher)); } i++; k++; } printf("len cypher = %d\n",strlen(cypher)); printf("cypher = %s\n\n",cypher); cypher[k]='\0'; return cypher; }
crypte(crypte("0"));
la console me dit :
Enfin le truc vert c'est le symbole de "pique" ( ♣ ) dans la console mais la balise code le remet en normal apparament , par contre ça marche avec 010 ou aba mais pas 001 ou 000001010 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 len line = 1 line[0] = 0 cypher[0] = V len cypher = 1 len cypher = 1 cypher = V len line = 1 line[0] = V cypher[0] = 0 len cypher = 3 len cypher = 3 cypher = 0♣=
Donc je comprend pas pourquoi cypher voit sa taille augmentée et pourquoi sa marche avec les string de 3 caracteres ..
Merci d'avance !![]()
Partager