检测一个字符串ip是否合法

int check_ip(char *ip){
	char * p=ip;
	int count=0;
	while(*p != '\0'){
		if( *p == '.') count++;
		p++;
	}
	if( count != 3 )return false;
	p=ip;
	for(int i=0;i<4;++i){
		int len=0;
		int tem=0;
		while(*p!=NULL){
			if(*p=='.')break;
			tem=tem*10+*p-'0';
			p++;
			len++;
		}
		if(len==1){
			if(tem<0||tem>9)return false;
		}else if(len==2){
			if(tem<10 ||tem>99)return false;
		}else if(len==3){
			if(tem<100||tem>255)return false;
		}else return false;
		if(*p!='\0')p++;
	}
	return true;
}

先检测是不是有三个点

然后一次检查每个部分的取值是否在合法的范围内

你可能感兴趣的:(经典算法)