怎么用C语言mac地址转换为十进制数组
发布网友
发布时间:2022-04-26 09:24
我来回答
共2个回答
热心网友
时间:2022-05-17 12:02
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 128
int _charToint(char ch)
{
if( ch>='0' && ch<='9' )
return ch - '0';
else
return ch-'A'+10;
}
int _16To10(const char *num)
{
int val = 0, p = 1;
int i = strlen(num)-1;
while( i >= 0 ){
val += _charToint(num[i])*p;
p *= 16;
--i;
}
return val;
}
void _MacTo10(const char *str)
{
char t[5];
int i = 0, pos;
int len = strlen(str);
int num;
while( i < len )
{
pos = i;
while( i<len && str[i]!='-' )
++i;
strncpy(t, str+pos, i-pos);
num = _16To10(t);
printf("%d", num);
if( str[i] != '\0' )
putchar('-');
++i;
}
putchar('\n');
}
int main()
{
char str[N];
while( scanf("%s", str) != EOF )
{
_MacTo10(str);
}
return 0;
}
追问
不行诶
追答
热心网友
时间:2022-05-17 12:02
以"-"分割原字符串,将16进制转化为10进制并重新拼接