1. 程式人生 > >指標實現字串IP地址轉化為十進位制IP地址輸出-c語言

指標實現字串IP地址轉化為十進位制IP地址輸出-c語言

#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.初學指標的應用比較容易出錯