解题思路:
1.本题就是将整个ip地址当字符串看,这样用.去当结束判断一个数的标志。
2.比较数是否在范围内,其实比较相应的ascii就可以了。
参考代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> int check(char x[]) { int i,j=0,k=0; char num[10][10]; for(i=0;x[i]!='\0';i++) { if(!(x[i]<='9'&&x[i]>='0'||x[i]=='.')) return 0; if(x[i]!='.') //还没到下个数 num[j][k++]=x[i]; else //说明马上就要到下个数了 { if(num[j][0]=='0'&&k!=1) //如果第一个数是0,直接结束,判断不符合要求 return 0; //如果就是0.其实也是满足的,就是k=1,且值为0的情况 k=0; //初始化 j++; //换到下一个数 } } for(j=0;j<4;j++) { if(!(atoi(num[j])>=0&&atoi(num[j])<=255)) //满足0到255 return 0; } return 1; } int main(){ char x[30]; while(scanf("%s",x)!=EOF) //接收 { printf("%c\n",check(x)?'Y':'N'); //调用函数判断 } return 0; }
看看大家还有什么不懂得,请在下方评论区留言
0.0分
3 人评分
C二级辅导-进制转换 (C语言代码)浏览:814 |
人民币问题 (C语言代码)浏览:720 |
A+B for Input-Output Practice (VII) (C语言代码)浏览:1414 |
倒杨辉三角形 (C语言代码)浏览:4039 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:656 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:502 |
C语言训练-排序问题<1> (C++代码)浏览:632 |
求圆的面积 (C语言代码)浏览:1366 |
简单的a+b (C语言代码)浏览:600 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:689 |