指標實現字串IP地址轉化為十進位制IP地址輸出-c語言
阿新 • • 發佈:2019-01-23
#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.初學指標的應用比較容易出錯