c_cpp 将IP地址转换为整数并将其转换回c
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 将IP地址转换为整数并将其转换回c相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
#include <stdlib.h>
union
{
unsigned int integer;
unsigned char byte[4];
} itoch;
main(){
printf("Converting IP: 32.0.45.54\n");
//--------- convert to int---------------------
unsigned int a=stohi("32.0.45.54");
printf("Integer value: %d\n",a);
//--------- convert to char[]---------------------
itoch.integer = a;
printf("char[] values: %u %u %u %u\n", itoch.byte[0], itoch.byte[1], itoch.byte[2], itoch.byte[3]);
}
int stohi(char *ip){
char c;
c = *ip;
unsigned int integer;
int val;
int i,j=0;
for (j=0;j<4;j++) {
if (!isdigit(c)){ //first char is 0
return (0);
}
val=0;
for (i=0;i<3;i++) {
if (isdigit(c)) {
val = (val * 10) + (c - '0');
c = *++ip;
} else
break;
}
if(val<0 || val>255){
return (0);
}
if (c == '.') {
integer=(integer<<8) | val;
c = *++ip;
}
else if(j==3 && c == '\0'){
integer=(integer<<8) | val;
break;
}
}
if(c != '\0'){
return (0);
}
return (htonl(integer));
}
以上是关于c_cpp 将IP地址转换为整数并将其转换回c的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 给定罗马数字,将其转换为整数,反之亦然。
c_cpp 将字符转换为整数
将多个整数列读取为字符串,尝试 gsub 并转换回整数
c_cpp 将整数转换为另一个基数
将 INT_MAX 转换为浮点数,然后再转换回整数。
将 datetime 转换为 Unix 时间戳并将其转换回 python