1

データをキャプチャする C プログラムがあり、その中で MAC アドレスをキャプチャします。ただし、MAC はたとえば の場合がありますが00:0F:3A:D3、プログラムは のようにキャプチャし0:F:3A:D3ます。文字列をチェックして、2 つの " :" の間に 1 つの文字があるかどうかを確認し、その場合は前にゼロを追加する方法はありますか?

私は良いプログラマーではないので、助けていただければ幸いです-ありがとう:)

4

2 に答える 2

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);
}
于 2011-04-15T12:00:52.137 に答える
2

printf 修飾子%02Xを使用して、先頭にゼロを付けて 16 進数を出力します。

別のアプリケーションからこのような形式でこの文字列を受け取った場合は、コードを変更するのではなく、そのアプリケーションを修正することをお勧めします。

于 2011-04-15T11:54:02.217 に答える