文章
1
粉丝
283
获赞
12
访问
20.5k
#include<stdio.h>
int main(void)
{
int a, b, c, d = 256; // 由于点分十进制要求四个数字均小于255
char ch; //所以设置d的初始值为256,便于后期判断输入是否合法
scanf("%d.%d.%d.%d", &a,&b,&c,&d); //对输入格式做限制,便于下面检测非法输入
if(a > 255 || b > 255 || c > 255 || d > 255 )// 判断a,b,c,d是否都已经接收到输入的值,
{ //并且判断输入的值是否合法
printf("Error\n");
return 0;
}
while((ch = getchar()) != '\n') //判断d接收到值以后是否存在继续输入的情况;
{ // 若存在多余输入,则返回Erro,程序结束!
printf("Error\n");
return 0;
}
printf("0x%02X%02X%02X%02X\n",a,b,c,d); //按题目要求输出结果
}
登录后发布评论
大佬
牛逼
这样的输入也可以吗???
((25[0-5]|2[0-4]\d|[01]?\d\d?).){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
我的正则反而过不了?
我愿称呼你为最强