IP地址轉換整型(算法練習)

// 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.254.142.150";
	unsigned int ip = TransIP(ipstr);
	printf("%s轉換爲整數爲%u", ipstr,ip);
	system("pause");
	return 0;
}

上面是在vs2010上編寫的代碼,運行結果如下

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章