c - 如何将 printf 的输出转换为 char?
问题描述
我正在尝试将 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的输出:输出结果
我想将其转换为字符,然后使用 STM32 中的 sendto() 到我的计算机。例如,我有一个 python 脚本,我在其中发送“MAC”,它会回答我“Mac 地址”。
sendto(sock,/*Mycharwithmacaddress here*/,2,0,&from,fromlen);
如何轻松地将 my_printf 的输出转换为仅获取一个包含我的 mac 地址的 char 数组?
解决方案
我相信您正在寻找与输出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);
}