解题思路

#include <stdio.h>
#include <stdlib.h>   //用atoi()把字符串中的数字转换成int类型的
#include <string.h>   //用strcmp()来与"End of file"比较;用strchr()寻找最后一个.的位置
void main()
{
	char IP[31];
	int cheak,i;     //cheak用来判断字符串是否符合条件
	char *str;      //声明一个指针来指向.的地址

	while (gets(IP)!=NULL&&strcmp(IP,"End of file"))
	{
		for (i=1;i<=4;i++)
		{
			if (i!=4)                         
			{
				str=strchr( IP ,'.' );    //str指向最后一个.的地址
				cheak=atoi(str+1);        //(str+1)指向.后面的字符,如果不是数字cheak=0
				if (cheak&&cheak>=0&&cheak<=255)
					*str=' ';         //把.更换成' ',让下一次循环指向上一个.
				else
				{
					puts("N");
					break;
				}
			}
			else                             //当i等于4时首字符没有'.'直接检查
			{
				cheak=atoi(IP);
				if (cheak&&cheak>=0&&cheak<=255)
					puts("Y");
				else
					puts("N");
			}
		}
	}
}

:
倒叙检查字符串  1.2.3.b   从b开始,再到3,再到2,再到1    




注意事项:





参考代码:

点赞(5)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

节奏大佬 5年前 回复TA
为什么不是先检查2,然后是3,然后是b,最后是1呢?strchr是返回第一个‘ . ’的地址吧,不是吗?