C 将字转换为字符串

C 将字转换为字符串,c,string,C,String,我正在尝试使用WiFi发送CAN消息 该消息由一个2字节的ID(WORD)和一个8字节的数据字段(QWORD)组成 我必须使用UART将数据包写入WiFi芯片,因此我想将单词和QWORD转换为字符串,然后使用putsUART发送数据包 如何将这些变量转换为字符串 WiFi数据包的结构: typedef struct { WORD id; QWORD data; } WiFiTXPacket; 也许是这样的: char package[10]; memcpy (&pack

我正在尝试使用WiFi发送CAN消息

该消息由一个2字节的ID(WORD)和一个8字节的数据字段(QWORD)组成

我必须使用UART将数据包写入WiFi芯片,因此我想将单词和QWORD转换为字符串,然后使用putsUART发送数据包

如何将这些变量转换为字符串

WiFi数据包的结构:

typedef struct {
    WORD id;
    QWORD data;
} WiFiTXPacket;

也许是这样的:

char package[10];
memcpy (&package, &wifiPackage, sizeof (WiFiTXPacket));

putsUART(package, strlen(package)); // i dont know how this function looks like, but for example ...

也许是这样的:

char package[10];
memcpy (&package, &wifiPackage, sizeof (WiFiTXPacket));

putsUART(package, strlen(package)); // i dont know how this function looks like, but for example ...
取决于戈萨默的回答。我想可能是这样。 如果使用memcpy函数。并用strlen(packeage)进行计算。如果有零值。可能导致问题发生

取决于戈萨默的回答。我想可能是这样。
如果使用memcpy函数。并用strlen(packeage)进行计算。如果有零值。可能导致问题发生

文本与任何事情都有什么关系?CAN指的是控制器局域网(automotive wire protocol)?顺便说一句,要将几个数字转换成一个字符串(WORD和QWORD只是数字),您可以使用
printf
。使用
scanf
进行转换。但这里有点可疑。控制器局域网,是的。我需要一根线把它输入WiFi芯片。你为什么需要一根线?再说一遍,文本与任何事情都有什么关系?WiFi(以太网)不是文本协议。我仍然不明白字符串是什么意思。它是数据包中数字的
ASCII
表示还是来自数据包的字节流?文本与任何东西有什么关系?CAN指的是控制器局域网(automotive wire protocol)?顺便说一句,要将几个数字转换成一个字符串(WORD和QWORD只是数字),您可以使用
printf
。使用
scanf
进行转换。但这里有点可疑。控制器局域网,是的。我需要一根线把它输入WiFi芯片。你为什么需要一根线?再说一遍,文本与任何事情都有什么关系?WiFi(以太网)不是文本协议。我仍然不明白字符串是什么意思。它是数据包中数字的
ASCII
表示还是来自数据包的字节流?
char *package = (char *)&wifiPackage;
putsUART(package, sizeof (WiFiTXPacket));