Как преобразовать вывод printf в char? - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь преобразовать вывод printf, чтобы получить только массив char после этого.

 my_printf("%02x:%02x:%02x:%02x:%02x:%02x", gnetif.hwaddr[0],gnetif.hwaddr[1],gnetif.hwaddr[2],gnetif.hwaddr[3],gnetif.hwaddr[4],gnetif.hwaddr[5]);

Вы можете увидеть вывод для putty здесь: Результат вывода

Я хотел бы преобразовать это в char и затем использовать sendto () из STM32 для моего компьютера. У меня есть сценарий python, куда я отправляю, например, «MA C», и он отвечает мне «Адрес ma c».

sendto(sock,/*Mycharwithmacaddress here*/,2,0,&from,fromlen);

Как я могу легко преобразовать вывод my_printf, чтобы получить только массив char с моим адресом ma c?

1 Ответ

2 голосов
/ 24 января 2020

Я полагаю, что вы ищете snprintf, что похоже на printf, за исключением того, что выходные данные хранятся в массиве, а не распечатываются. snprintf будет использоваться так:

snprintf(char_array, size_of_char_array, “text to print to array such as the MAC address”);

Вот минимальный пример:

#include <stdio.h>

void myfunc(char[]);

int main(void)
{
    char arr[100] = {0};
    snprintf(arr, 100, "%02x:%02x:...", 12, 35);
    myfunc(arr);
}

void myfunc(char arr[])
{
    puts(arr);
}

Попробуйте онлайн!

...