解题思路:
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语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1264 |
C语言训练-大、小写问题 (C语言代码)浏览:695 |
C语言训练-数字母 (C语言代码)浏览:639 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:783 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:644 |
大神老白 (C语言代码)浏览:574 |
上车人数 (C语言代码)浏览:693 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:427 |
字符删除 (C语言代码)浏览:694 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:364 |