#include #include #define NUM_TO_ASCII(num) ((num) + '0') void dev_serial_number_to_string(char *s, uint8_t *sn, uint8_t len) { uint8_t interval = 0; // 间隔x位插入'-' uint8_t count = 0; for (uint8_t i = 0; i < len; i++) { s[count] = NUM_TO_ASCII(*(sn + i)); count++; if (interval != 0) { if ((i + 1) % interval == 0 && count < count + len / interval) { s[count] = '-'; count++; } } } if (interval != 0) { s[len + len / interval - 1] = '\0'; // 添加字符串结束符 } else { s[len] = '\0'; // 添加字符串结束符 } } int main() { uint8_t sn[16] = {0}; // 16个0 char s[19]; // 16 digits + 3 dashes + 1 null terminator dev_serial_number_to_string(s, sn, 16); printf("Formatted serial number: %s\n", s); return 0; }