44 lines
953 B
C
44 lines
953 B
C
#include <stdio.h>
|
|
#include <stdint.h>
|
|
|
|
#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;
|
|
}
|