将4字节ip地址转换为标准点分十进制表示法
发布时间:2020-12-16 10:28:18 所属栏目:百科 来源:网络整理
导读:如果我在char地址[4]中存储了一个4字节地址,则内容为: address[0] = 'x80';address[1] = 'xAB';address[2] = 'x0A';address[3] = 'x1C';// all together: 80 AB 0A 1C 我想将它转换为一个看起来像“128.171.10.28”的字符数组,因为十六进制中的80是128,
如果我在char地址[4]中存储了一个4字节地址,则内容为:
address[0] = 'x80'; address[1] = 'xAB'; address[2] = 'x0A'; address[3] = 'x1C'; // all together: 80 AB 0A 1C 我想将它转换为一个看起来像“128.171.10.28”的字符数组,因为十六进制中的80是128,十六进制中的AB是171,依此类推. 我怎样才能做到这一点? 解决方法char saddr[16]; sprintf(saddr,"%d.%d.%d.%d",(unsigned char)address[0],(unsigned char)address[1],(unsigned char)address[2],(unsigned char)address[3]); 要么 char saddr[16]; unsigned char *addr = (unsigned char*)address; sprintf(saddr,addr[0],addr[1],addr[2],addr[3]); 或者,正如dreamlax所指出的那样: char saddr[16]; sprintf(saddr,"%hhu.%hhu.%hhu.%hhu",address[0],address[1],address[2],address[3]); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |