文章

0

粉丝

0

获赞

8

访问

13414

头像
ip地址(C)
P1023
发布于2020年10月19日 20:46
阅读数 13414

 

#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);  //按题目要求输出结果
	
}

 

登录查看完整内容


登录后发布评论

3 条评论
入门小渣渣
2022年4月3日 22:33

这样的输入也可以吗???

赞(0)
silentBeginner
2021年2月16日 17:16

((25[0-5]|2[0-4]\d|[01]?\d\d?).){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b

我的正则反而过不了?

赞(0)
vf19
2021年2月8日 12:31

我愿称呼你为最强

赞(1)