判断IP
题目
合法的IP是这样的形式:
A.B.C.D
其中A、B、C、D均为位于[0, 255]中的整数。为了简单起见,我们规定这四个整数中不允许有前导零存在,如001这种情况。
现在,请你来完成这个判断程序吧^_^
输入样例
合法的IP是这样的形式:
A.B.C.D
其中A、B、C、D均为位于[0, 255]中的整数。为了简单起见,我们规定这四个整数中不允许有前导零存在,如001这种情况。
现在,请你来完成这个判断程序吧^_^
分析:
- 这个题用scanf("%d.%d.%d.%d",&a,&b,&c,&d)输入,便于后续内容判断
- k=scanf("%d.%d.%d.%d",&a,&b,&c,&d):表示输入的内容是否符合输入要求,如果a,b,c都为整数,而d为其他类型,则k的值为3,题目要求4个整数,所以k在后面判断为4才能符合要求
- scanf从第一个不符合输入格式的地方结束,剩下的东西会放在缓冲区,所以可以用可以用gets(s)来接收
- 而判断后,要用fflush(stdin)来清除缓冲区,否则不符合要求
#include<stdio.h>
#include<string.h>
int main()
{
int a,b,c,d;
int k;
char s[30];
while(~(k=scanf("%d.%d.%d.%d",&a,&b,&c,&d)))
{
gets(s);//接收
if(k==4 && a>=0 && a<=255 && b>=0 && b<=255 && c>=0 && c<=255 && d>=0 && d<=255)
{
printf("Y\n");
}
else{
printf("N\n");
}
fflush(stdin);//清除缓冲区
}
return 0;
}