【发布时间】:2011-08-06 02:09:15
【问题描述】:
我正在尝试编写一个 C 函数来解析 MAC 地址输入,使用空格、冒号或破折号作为分隔符。我一直在研究使用%*[-:] 来匹配多个字符,但它似乎无法检测到空白字符(例如空格),并且它还使用破折号产生错误的值,因为它认为数字是负数。
我的函数看起来像:
scanf("%2x%*[-:]%2x", &hex1, &hex2);
一个scanf可以吗?或者还有其他更好的方法吗?谢谢。
【问题讨论】:
-
如果是我,我可能会多写几行,把破折号和空格变成
:,然后写一个简单的sscanf(3)规则。
标签: c hex scanf format-specifiers