Comment encoder des caractères spéciaux en code HEXA ?
:D Salut :D :D
Je voudrais écrire une petite fonction qui transforme tous les caractères spéciaux d'une chaîne de caractère en code Hexa précédé de '%'. Par exemple, elle retournera '%20' pour l'espace " " ou "%40" pour le caractère "@".
Dites-moi ce qui cloche dans ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
char[] EncodeIt(char text[])
{
int len = strlen(text);
for(int i = 0; i < len;i++)
{
switch(text[i])
{
case ' ':
cout << "Space !"<< endl;
break;
default:
cout << "No Space Found !"<< endl;
break;
}
}
} |
Voici la liste des codes ASCII et HEXA des caractères concernés
Code:
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
|
1ère colonne : caractères spéciaux
2e colonne : code ASCII
3e colonne : code HEXA
SP (espace) 32 20
! 33 21
" 34 22
# 35 23
$ 36 24
% 37 25
& 38 26
' 39 27
( 40 28
) 41 29
* 42 2A
+ 43 2B
, 44 2C
- 45 2D
. 46 2E
/ 47 2F
: 58 3A
; 59 3B
< 60 3C
= 61 3D
> 62 3E
? 63 3F
@ 64 40
[ 91 5B
\ 92 5C
] 93 5D
^ 94 5E
_ 95 5F
` 96 60
{ 123 7B
| 124 7C
} 125 7D
~ 126 7E |
Merci pour aide !
PDTOR
Re: Comment encoder des caractères spéciaux en code HEXA ?
Citation:
Envoyé par pdtor
Dites-moi ce qui cloche dans ce code :
Code:
cout << "Space !"<< endl;
Pas du C...
Un truc comme ça ? Pose des questions si tu ne comprends pas.
Code:
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
|
#include<stdio.h>
#include<string.h>
static void EncodeIt (char const *s_in, char *s_out, size_t size)
{
char const *p = s_in;
int c;
int n = 0;
while ((c = *p) != 0 && n < size - 1)
{
if (strchr(" !\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~", c) != 0)
{
n += sprintf (s_out + n, "%c%2X", '%', c);
}
else
{
n += sprintf (s_out + n, "%c", c);
}
p++;
}
}
int main(void)
{
char const s_in[] = "Hello world";
char s_out[32];
EncodeIt(s_in, s_out, sizeof s_out);
printf ("'%s'\n", s_out);
return 0;
} |
Re: Comment encoder des caractères spéciaux en code HEXA ?
Merci !
Cette fonction marche à merveille :D :D :D :D :D :D :D
PDTOR
Re: Comment encoder des caractères spéciaux en code HEXA ?
Citation:
Envoyé par pdtor
Cette fonction marche à merveille
Euh, elle n'est pas exempte de problèmes... Il y a un risque de débordement. Mais on peut anticiper le coup en refléchissant 5 minutes, et si on a compris comment elle fonctionne...