您的位置:首页 > 其它

IP地址转为整形数组

2016-04-17 12:51 232 查看
最近正在学习C/C++,看到ip地址转为整型数组的问题,用sscanf来匹配,记录一下。

#include <iostream>
using namespace std;

int strToip(char *str,int *number){
if(str==NULL){
return -1;
}
int num1,num2,num3,num4;
char extra=0;

int idx=sscanf(str,"%d.%d.%d.%d %c",&number[0],&number[1],&number[2],&number[3],&extra);

if(idx<4||idx>5){
//printf("the length extends the margin");
return -2;
}
printf("%c",extra);
if(extra!=0){
//printf(" non-number character exists");
return -3;
}
if(number[0]<0||number[0]>255||number[1]<0||number[1]>255||number[2]<0||number[2]>255||number[3]<0||number[3]>255){
printf("the number is wrong");
return -4;
}

return 1;
}
int main(){
char *ips="172.0.0.1";
int *ipnum=new int[4];
int a=strToip(ips,ipnum);
if(a==1){
for(int i=0;i<4;i++){
printf("%d ",ipnum[i]);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: