将4字节ip地址转换为标准点分十进制表示法

将4字节ip地址转换为标准点分十进制表示法,第1张

概述如果我在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]);
总结

以上是内存溢出为你收集整理的将4字节ip地址转换为标准点分十进制表示法全部内容,希望文章能够帮你解决将4字节ip地址转换为标准点分十进制表示法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1220433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存