Добавить нули в строку - PullRequest
1 голос
/ 15 апреля 2011

У меня есть программа на C, которая собирает данные, и среди них она записывает MAC-адреса.Однако, хотя MAC может быть, например, 00:0F:3A:D3, программа перехватывает его как 0:F:3A:D3.Есть ли способ проверить строку и посмотреть, есть ли между двумя ":" один символ, и если да, то добавить ноль впереди?

Я не хороший программист, поэтому любая помощьценится - спасибо:)

Ответы [ 2 ]

4 голосов
/ 15 апреля 2011
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);
}
2 голосов
/ 15 апреля 2011

Используйте модификатор printf %02X для вывода шестнадцатеричного числа с начальным нулем.

Если вы получите эту строку в таком формате из другого приложения, я бы посоветовал исправить это другое приложение, а не адаптировать вашкод.

...