木头刻小字用什么工具:用C如何判断一列数是否为IP地址

来源:百度文库 编辑:中科新闻网 时间:2024/05/09 15:06:04

#include "stdio.h"
#include "string.h"
int xf(int a,int b)/* 乘方的调用 */
{int i,j=1;
if(b==0)
j=1;
else
for(i=1;i<=b;i++)
j=j*a;
return(j);
}
int y(char *ip)
{int ch,i,m=0,n=0,u=0,hui=1;
ch=strlen(ip);
ch--;
for(i=0;i<=ch;i++)
{if(int(ip[i])!=46)
if(int(ip[i])<48 || int(ip[i])>57) hui=0;/* 查看IP[]中是否有不属IP的符号存在*/
if (ip[i]=='.' && ip[i+1]=='.') hui=0;}/*查看是否有两个'.'相联的 */
for(i=ch;i>=0;i--)
{if(ip[i]=='.')
{n++;m=0;u=0;}
else
{m+=((int(ip[i])-48)*xf(10,u));u++;}
if(m>255) {hui=0;break;}/*判断两点间是不是大于255*/
}
if(n!=3 || n==3 && m==0) hui=0;/* 判断'.'的个数和第一个不为0*/
return(hui);
}
main()
{char a[80] ;
printf("输入IP地址:\n") ;
gets(a);
switch(y(a))
{case 0:
printf("不是IP地址\n");break;
case 1:
printf("是IP地址\n");break;
}
}
QQ:31416377
有事找我