C 语言uint8转换成字符串,将uint8_t []转换为IP地址字符串

我目前正在学习C.我的生态系统包括Espressif ESP-32微控制器和Eclipse CDT IDE.

我试图将一个转换uint8_t[]为人类可读的IPv4 address string.到目前为止,我想出了以下代码:

void app_main() {

uint8_t[] ip = {192, 168, 0, 99};

dump_ip(ip);

}

void dump_ip(const uint8_t *in) {

// ip addresses consist of three dots + terminator '\0'

int size = 4;

// count amount of chars needed for specific ip address

for(int i=0; i<4; i++) {

if(in[i]==0) {

size ++;

} else {

size += ((int)log10(in[i]))+1;

}

}

// allocate memory on heap for an ip address of length 'size'

char *ip_str = (char*)malloc(size*sizeof(char));

// copy ip address parts to char array

int pos = 0;

for(int i=0; i<4; i++) {

if(

你可能感兴趣的:(C,语言uint8转换成字符串)