Bonjour,

Pourriez vous me donner la fonction exacte en C pour transformer une chaîne de caractère de taille fixe de la forme avec x un caractère hexadécimale (0-16) en un tableau de 6 octets.

Il serait soit disant possible de le faire avec un sprintf mais je n'ai pas réussi à faire ce que je voulais.

Actuellement je fais ça comme cela mais je ne suis pas sur que ça marche à coup sur :

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
	i=0;
	u =0;
	while(i<17) {
		if( macTexte[i] != ':' ) {
			pMac[u] = macTexte[i];
			u++;
		}
	i++;
	}
 
	for(i=0; i<11; i=i+2) {
		int a,b;
			u = 0;			
			if(pMac[i+u] == '0') { a = 0; };
			if(pMac[i+u] == '2') { a = 2; };
			if(pMac[i+u] == '3') { a = 3; };
			if(pMac[i+u] == '4') { a = 4; };
			if(pMac[i+u] == '5') { a = 5; };
			if(pMac[i+u] == '6') { a = 6; };
			if(pMac[i+u] == '7') { a = 7; };
			if(pMac[i+u] == '8') { a = 8; };
			if(pMac[i+u] == '9') { a = 9; };
			if(pMac[i+u] == 'a') { a = 10; };
			if(pMac[i+u] == 'b') { a = 11; };
			if(pMac[i+u] == 'c') { a = 12; };
			if(pMac[i+u] == 'd') { a = 13; };
			if(pMac[i+u] == 'e') { a = 14; };
			if(pMac[i+u] == 'f') { a = 15; };
			u = 1;
			if(pMac[i+u] == '0') { b = 0; };
			if(pMac[i+u] == '1') { b = 1; };
			if(pMac[i+u] == '2') { b = 2; };
			if(pMac[i+u] == '3') { b = 3; };
			if(pMac[i+u] == '4') { b = 4; };
			if(pMac[i+u] == '5') { b = 5; };
			if(pMac[i+u] == '6') { b = 6; };
			if(pMac[i+u] == '7') { b = 7; };
			if(pMac[i+u] == '8') { b = 8; };
			if(pMac[i+u] == '9') { b = 9; };
			if(pMac[i+u] == 'a') { b = 10; };
			if(pMac[i+u] == 'b') { b = 11; };
			if(pMac[i+u] == 'c') { b = 12; };
			if(pMac[i+u] == 'd') { b = 13; };
			if(pMac[i+u] == 'e') { b = 14; };
			if(pMac[i+u] == 'f') { b = 15; };
		mac[i/2] = (u_char) a*16 + b;