原题链接:IP判断
解题思路:
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语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复