データをキャプチャする C プログラムがあり、その中で MAC アドレスをキャプチャします。ただし、MAC はたとえば の場合がありますが00:0F:3A:D3
、プログラムは のようにキャプチャし0:F:3A:D3
ます。文字列をチェックして、2 つの " :
" の間に 1 つの文字があるかどうかを確認し、その場合は前にゼロを追加する方法はありますか?
私は良いプログラマーではないので、助けていただければ幸いです-ありがとう:)
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);
}
printf 修飾子%02X
を使用して、先頭にゼロを付けて 16 進数を出力します。
別のアプリケーションからこのような形式でこの文字列を受け取った場合は、コードを変更するのではなく、そのアプリケーションを修正することをお勧めします。