#include "spiderman.h"
int ip_int(char *ip) //char *ip={"192.168.1.1"}
{
int count=0;
int i=0;
int ip_int[4];
char *end;
end=ip;
memset(ip_int,0,4);
for(i=0;*end!='\0';++i)
{
if(*end=='.') //计算有几个数字
{
count++;
}
else //从百位开始 到各位构造数 // 00 00 00 c0
{ //移位后进行与运算
ip_int[count]=ip_int[count]*10 +(*end-'0'); // 00 00 00 a8
} // 00 00 00 01
end++; // 00 00 00 01
}
i=(ip_int[0]<<24)|(ip_int[1]<<16)|(ip_int[2]<<8)|(ip_int[3]);
puts(ip);
//printf("%x",i);
return i;
}
刚刚学会函数的拆分,以后就直接在头文件声明函数了,嘻嘻
#include "spiderman.h"
int main()
{
char * ip = "192.168.1.1" ;
//int a[4] ;
int a = ip_int(ip) ;
//sscanf(ip,"%d.%d.%d.%d", &a[0],&a[1],&a[2],&a[3]);
//printf("%d.%d.%d.%d",a[0],a[1],a[2],a[3]);
system("pause");
return 0;
}还有一种更为简单的方法,就是直接调用sscanf函数,不过像我自己这种初学者 还是多写写代码吧
重点:
1.以.定位每个数字段
2.难点是怎么讲ASCII怎么转变成十进制数字 3.初学指针的应用比较容易出错