2011-04-15 50 views
1

我有一個捕獲數據的C程序,其中包含捕獲MAC地址。但是,雖然MAC可能是例如00:0F:3A:D3,但該程序將其捕獲爲0:F:3A:D3。有沒有辦法檢查字符串,看看兩個「:」之間是否有一個字符,如果是,在前面添加一個零?將零加到字符串

我不是一個好的程序員,所以任何幫助表示讚賞 - 謝謝:)

+2

嗯...你看看字符串,並檢查幾個相鄰的字符,並決定是否是這種情況。有什麼問題? – sharptooth 2011-04-15 11:53:52

回答

4
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

2

使用printf的修改%02X輸出帶有前導零的十六進制數。

如果您從另一個應用程序以這種格式接收到此字符串,我會建議修復該其他應用程序而不是修改您的代碼。