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;
}
#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;
}
相关文章推荐
- JS对象详解
- 不用加减乘除实现加法
- 有关可变形部件模型(Deformable Part Model)的一些说明
- 基数排序之LSD
- IP访问伪造
- Git安装和多ssh key 管理
- 用初次训练的SVM+HOG分类器在负样本原图上检测HardExample
- 操作系统开发系列—12.a.从Loader到内核 ●
- Map容器——HashMap及常用API,及put,get方法解析,哈希码的产生和使用
- Android组件-下拉列表、时间选择器、日期选择器、单选框、复选框
- 在windows下运行Felzenszwalb的Deformable Part Model(DPM)源码voc-release3.1来训练自己的模型
- 如何选择合适的STL容器?
- 如何选择合适的STL容器?
- linux内核分析 第八周 理解进程调度时机跟踪分析进程调度与进程切换的过程
- 结构体里定义超过两个字符数
- 堆排序 | 数据结构与算法
- OpenCV中Mat类的图像如何设置ROI
- Kafka Broker常用配置详解
- 求指导。。。运行停止工作的原因。
- OpenCV2.4.4中调用SIFT特征检测器进行图像匹配