Bonjour à tous,
J'ai un petit soucis car je n'ai encore jamais manipulé les chaînes de caractères, et les opérateurs bit à bit. Il faudrait donc que je fasse un programme qui me code une chaine de caractère avec le caractère ASCII d'ordre 199 (sur tous les caractères de mon texte).
J'ai testé plusieurs choses, mais voici ma dernière version :
Donc dans ma fonction, j'ai tenté de caster le MonTexte[i] afin qu'il soit du même type que '199', mais un message apparait et dit "Multi-character character constant".
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 #include <stdio.h> #include <string.h> char* CrypteDecrypte(char* MonTexte) { int i; for(i=0;i<strlen(MonTexte);i++) { MonTexte[i]=(char)MonTexte[i]^'199'; } return MonTexte; } void AfficherCrypt(char* Texte) { int i; for(i=0;i<strlen(Texte);i++) { printf("%c", Texte[i]); } } int main() { char* Texte="o"; //test avec la lettre o minuscule CrypteDecrypte(Texte); AfficherCrypt(Texte); return 0;
Après, comme je vous l'ai dit, je ne sais pas si j'utilise la bonne méthode pour accéder à tous les éléments de ma chaine de caractères, car je n'ai encore jamais travaillé sur ce genre de chose.
De plus, dans l'énoncé, il est écrit que le corps de la fonction peut être fait en une seule ligne. Or là j'en ai plusieurs car j'utilise une boucle. Mais je ne sais pas ce qu'ils veulent dire par "corps", peut-être seulement l'instruction de changer chaque caractère avec un XOR ?
Merci d'avance pour votre réponse.
Partager