将零加到字符串
问题描述:
我有一个捕获数据的C程序,其中包含捕获MAC地址。但是,虽然MAC可能是例如00:0F:3A:D3
,但该程序将其捕获为0:F:3A:D3
。有没有办法检查字符串,看看两个“:
”之间是否有一个字符,如果是,在前面添加一个零?将零加到字符串
我不是一个好的程序员,所以任何帮助表示赞赏 - 谢谢:)
答
int main() {
char *s = "0:F:3A:D3";
char o[15];
int a, b, c, d;
sscanf(s, "%X:%X:%X:%X", &a, &b, &c, &d);
sprintf(o, "%02X:%02X:%02X:%02X", a, b, c, d);
printf(o);
}
+0
非常感谢你taskinoor :) – 2011-04-15 12:13:08
答
使用printf的修改%02X
输出带有前导零的十六进制数。
如果您从另一个应用程序以这种格式接收到此字符串,我会建议修复该其他应用程序而不是修改您的代码。
嗯...你看看字符串,并检查几个相邻的字符,并决定是否是这种情况。有什么问题? – sharptooth 2011-04-15 11:53:52