sscanf输出指定MAC地址格式
- sscanf用法
- 实际例子
sscanf用法
首先了解一下sscanf的语法规则:
实际例子
1.将mac地址按照其格式进行输出:
允许输入一位数的数字或者字母,最终为了显示美观,将字母变成大写,一位数变成两位数字进行输出,即用%2X格式输出。
2.取出MAC地址中的数字进行保存,因为MAC地址一共有12位数,因此一个字节存不下,需要使用两个字节进行存储。将sscanf得到的数组进行移位运算,保存完整的MAC地址。
代码如下:
//gcc 5.4.0
#include <stdio.h>
int main(void)
{unsigned int u32high = 0;unsigned int u32low = 0;const char *f = "A:67:43:ed:2f:44";unsigned char mac[6] = { 0 };sscanf(f, "%02X:%02X:%02X:%02X:%02X:%02X", &mac[0], &mac[1], &mac[2], &mac[3], &mac[4], &mac[5]);printf("%02X:%02X:%02X:%02X:%02X:%02X\n",mac[0], mac[1], mac[2],mac[3], mac[4], mac[5]);u32high = ((mac[0] & 0x000000ff) <<24) | ((mac[1] & 0x000000ff) <<16) | ((mac[2] & 0x000000ff) << 8) | (mac[3] & 0x000000ff);u32low = ((mac[4] & 0x000000ff) << 8) | (mac[5] & 0x000000ff);printf("%x\n%x\n",u32high,u32low);return 0;
}
这样就可以实现用sscanf输出指定MAC地址格式的数组啦,最后用两个字节进行存储MAC地址。