如何将 printf 的输出转换为 char?
How to convert the output of a printf to a 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 上的输出:Result of output
我想将其转换为字符,然后使用 STM32 中的 sendto() 发送到我的计算机。例如,我有一个 python 脚本,我在其中发送 "MAC",它会回答我 "The mac address".
sendto(sock,/*Mycharwithmacaddress here*/,2,0,&from,fromlen);
我如何轻松地将 my_printf 的输出转换为仅包含我的 mac 地址的字符数组?
我相信您正在寻找 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);
}
我正在尝试将 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 上的输出:Result of output
我想将其转换为字符,然后使用 STM32 中的 sendto() 发送到我的计算机。例如,我有一个 python 脚本,我在其中发送 "MAC",它会回答我 "The mac address".
sendto(sock,/*Mycharwithmacaddress here*/,2,0,&from,fromlen);
我如何轻松地将 my_printf 的输出转换为仅包含我的 mac 地址的字符数组?
我相信您正在寻找 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);
}