Modification auto chaine caratere

kristof1429 Messages postés 4 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 5 mai 2009 - 26 févr. 2007 à 18:59
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 27 févr. 2007 à 21:53
Bonjour,

Voila je voudrai convertir une mac address qui apparait de la facon suivante:

0016.35AA.153C

en

00-16-35-AA-15-3C

c'est a dire enlever les deux points et mettre tous les 2 caracteres un tiret

Merci a celui ou celle qui aurai une idée

acynonix

12 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 févr. 2007 à 19:08
MAC est ta chaine.
char buf[20];
buf[0] = MAC[0];
buf[1] = MAC[1];
buf[2] = '-';

etc, etc...

ciao...
BruNews, MVP VC++
0
kristof1429 Messages postés 4 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 5 mai 2009
26 févr. 2007 à 19:12
merci mais le etc etc va pas trop m'aider
si qqun pouvait me faire un .cpp ca serai mega top cool
maci davance
0
kristof1429 Messages postés 4 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 5 mai 2009
26 févr. 2007 à 19:13
je laisse mon msn au cas ou
mouche245@msn.com
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 févr. 2007 à 19:36
char buf[20];
buf[0] = MAC[0];
buf[1] = MAC[1];
buf[2] = '-';
buf[3] = MAC[2];
buf[4] = MAC[3];
buf[5] = '-';
buf[6] = MAC[5];
buf[7] = MAC[6];
buf[8] = '-';

J'espère que là tu pourras ajouter le reste, suffit de placer dans buf ce qui t'intéresse de MAC.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zied86 Messages postés 85 Date d'inscription dimanche 5 mars 2006 Statut Membre Dernière intervention 4 août 2014
26 févr. 2007 à 23:15
#include<stdio.h>
#include<string.h>
main()
{char mac[]="0016.35AA.153C";
int i,j,n;
/*eliminer les '.' de la premiere adresse mac*/
for(i=0;i<strlen(mac);i++)
if(mac[i]=='.')
     for(j=i;j<strlen(mac);j++)
     mac[j]=mac[j+1];
/*taille de la chaine de la nouvelle adresse*/
n=(strlen(mac)+((strlen(mac)/2)-1));
/*declaration de la nouvelle chaine*/
char mac2[n];
/*creation de la nouvelle adresse*/
for(i=0,j=0;i<=strlen(mac);i++,j++)
    if(i%2==0&&i!=0&&i!=strlen(mac))
       {mac2[j]='-';
       j++;
       mac2[j]=mac[i];
       }
    else
        mac2[j]=mac[i];
/*affichage de la nouvelle adresse*/
puts(mac2);
}

Ellouze Zied
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 févr. 2007 à 23:22
Comment faire en 500 cycles ce qui se fait en 17....

ciao...
BruNews, MVP VC++
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
27 févr. 2007 à 08:52
Ou comment donner une réponse compliquée à un problème simple

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
cs_sam20 Messages postés 184 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 26 mai 2016 3
27 févr. 2007 à 19:55
Je crois que pas besoin de cree une nouvelle variable.
ta variable Mac qui contient l'adresse tu fais.

Mac[2]='-';
Mac[5]='-';
Mac[8]='-';
Mac[11]='-';
Mac[14]='-';
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 févr. 2007 à 20:07
Allons allons, vérifie ce que tu as écris et tu verras que tu écrases (donc perdus) certains octets de la chaine.

ciao...
BruNews, MVP VC++
0
cs_sam20 Messages postés 184 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 26 mai 2016 3
27 févr. 2007 à 20:14
Ah oui je suis bete...
0
zied86 Messages postés 85 Date d'inscription dimanche 5 mars 2006 Statut Membre Dernière intervention 4 août 2014
27 févr. 2007 à 21:32
oh Mr. [auteurdetail.aspx?ID=39449 BruNews] et Mr. [auteurdetail.aspx?ID=830917 sam20] 
verifier la solution que j'ai deja proposer qucun octet va etre perdu car j'ai deja declarer une 2eme variable suplementaire que j'ai appeler mac2.
SVP verifier avant de mettere vos commentaire.

Ellouze Zied
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 févr. 2007 à 21:53
A toi de suivre la discussion, tu aurais vu que c'est de la version sam20 dont on parlait.

De la tienne on a déjà dit ce qu'on en pensait: Tu amuses le cpu inutilement, ce qui se fait en 17 cycles comme je l'ai montré tout au début, tu nous proposes un fonction avec d'innombrables calculs pour un truc hyper simple.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous