我有一個捕獲數據的C程序,其中包含捕獲MAC地址。但是,雖然MAC可能是例如00:0F:3A:D3
,但該程序將其捕獲爲0:F:3A:D3
。有沒有辦法檢查字符串,看看兩個「:
」之間是否有一個字符,如果是,在前面添加一個零?將零加到字符串
我不是一個好的程序員,所以任何幫助表示讚賞 - 謝謝:)
我有一個捕獲數據的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);
}
非常感謝你taskinoor :) – 2011-04-15 12:13:08
使用printf的修改%02X
輸出帶有前導零的十六進制數。
如果您從另一個應用程序以這種格式接收到此字符串,我會建議修復該其他應用程序而不是修改您的代碼。
嗯...你看看字符串,並檢查幾個相鄰的字符,並決定是否是這種情況。有什麼問題? – sharptooth 2011-04-15 11:53:52