// ipTrans.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <windows.h>
typedef union
{
unsigned char data[4];
unsigned int ip;
}IP;
unsigned int TransIP(char *pstrIp)
{
IP ipstr = {0};
unsigned char temdata[3] = {0};
int i = 0, k = 0, point = 0, t = 0;
while(pstrIp[i] != '\0'){
if(pstrIp[i] != '.')
{
if(point > 0)
{
ipstr.data[k++] = (temdata[0] - '0')*100 + (temdata[1] - '0')*10 +(temdata[2] - '0');
point = 0;
t = 0;
}
temdata[t++] = pstrIp[i];
}
else
{
point++;
}
i++;
}
ipstr.data[k] = (temdata[0] - '0')*100 + (temdata[1] - '0')*10 +(temdata[2] - '0');
return ipstr.ip;
}
int _tmain(int argc, _TCHAR* argv[])
{
char *ipstr = "169.168.1.1";
unsigned int ip = TransIP(ipstr);
printf("%s转换为整数为%u", ipstr,ip);
system("pause");
return 0;
}
上面是在vs2010上编写的代码,运行结果如下