方法1: 判断各个部分是否合法 intis_valid_ip(constchar*ip_str) { unsignedintn1,n2,n3,n4; if(sscanf(ip_str,"%u.%u.%u.%u",&n1,&n2,&n3,&n4) !=4) { return0; } if( (n1!=0)&&(n1<=255)&&(n2<=255)&&(n3<=255)&&(n4<=255) ) { char buf[64]; sprintf(buf,"%u.%u.%u.%u"...
C语言检查ip是否合法,在工作当中我们经常会遇到这种问题:判断一个输入的字符串是否为合法的IP地址,下面是一个测试小程序:运行结果:
intsection =0;//每一节的十进制值 intdot =0;//几个点分隔符 intlast = -1;//每一节中上一个字符 while(*ip) { if(*ip =='.') { dot++; if(dot >3) { return0; } if(section >=0&& section <=255) { section =0; }else{ return0; } }elseif(*ip >='0'&& *ip <='9') ...
所以 最简单的方法 就是把ip地址存成字符串str 然后 int a,b,c,d;a=b=c=d=-1;sscanf(str,"%d.%d.%d.%d", &a,&b,&c,&d);define chk(x) (x<0 || x>255)if(chk(a) || chk(b)||chk(c)||chk(d)) printf("failed");else { printf("ok");} ...
&n[1], &c[1], &n[2], &c[2], &n[3], &c[3]) == 7) { int i; for(i = 0; i < 3; ++i) if (c[i] != '.') return 0; for(i = 0; i < 4; ++i) if (n[i] > 255 || n[i]...
c语言判断ip地址是否合法 function checkIp($ip){ $arr = explode('.',$ip); if(count($arr) != 4){ return false; }else{ for($i = 0;$i < 4;$i++){
如何判断“MAC地址”是否有效?()是一个有效的MAC地址 A.19-22-01-63-23B.192.201.63.252C.0000.1234.ADFGD.00-00-11-11-11-AA 答案是那一个?为什么? 答案 D其他的不符合规范A和B位数都不对C里面出现了“G”,超出了16进制的取值范围所以只有D是正确的 相关推荐 1 如何判断“MAC地址”是否有效?()是一...
题目描述 输入一个ip地址串,判断是否合法。 输入描述: 输入的第一行包括一个整数n(1IP地址的个数。...接下来的n行每行有一个IP地址,IP地址的形式为a.b.c.d,其中a、b、c、d都是整数。输出描述: 可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!”,否则输
='.') { return 0; } p++; str=p; } } /** *校验是否可用@分割为两段,返回域名首地址,不合要求返回NULL *参数:str,源字符串,length,长度限制(防越界) *函数会用'\0'代替源字符串第一个'@',已完成邮箱,域名分割. */char *SplitByAt(char *str,int length){...
这一句,在ASCII表中0是在9前面的,所以应该是a[i]>='0'&&a[i]<='9',中间是逻辑与,这样可以保证只有数字才有效 还有,你的程序逻辑也有点问题,for(i=1;a[i]!='\n';i++),这是从a[1]开始判断,但是,应该是从a[0]开始判断。再有,这个for循环里面,一开始判断的是输入的段数,...