解题思路:     用'.'分隔字符串,将字符串变为整数,判断是否处于0到255之间,如果处于,记录个数加一;

               循环结束之后,判断符合ip条件的整数的个数,再进行输出Y/N的步骤,是不是一目了然.

注意事项:     在下的方法要注意每次循环初始化,以及字符串元素不为'\0';

参考代码:
#include<stdio.h>
int main()
{
	char str[100];                           //输入字符串,对字符串进行操作
	int i, j, sum;                           //i为临时变量,j记录符合ip的个数,sum记录每个整数的大小
	while (scanf("%s", str) != EOF)
	{
		j = 0;                           //每次输入字符串把符合ip的整数的个数赋值为0
		for (i = 0; str[i]; i++)
		{
			sum = 0;                     //以'.'为分割,记录每一个整数的数值,每次循环赋值为0
			if (str[i]<'0' || str[i]>'9')     //每一个分隔的小段字符串的第一位,如果不是数字,直接break;
				break;
			else
			{
				while (str[i] != '.'&&str[i])        //对于初步符合ip的小段字符串,进行数值大小的操作
				{
					sum = 10 * sum + str[i] - '0';
					i++;
				}
				if (sum >= 0 && sum <= 255)       //如果整数大小在0到255之间,j++
					j++;
			}
		}
		if (j == 4)                      //如果j==4,输出Y;
			printf("Y\n");
		else                           //反之,输出N;
			printf("N\n");
	}
	return 0;
}


点赞(4)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 2 条评论

wanderer丶 5年前 回复TA
好像有点问题  比如1.1a.1.1也是Y
正弦 6年前 回复TA
欢迎大神指教~ 也不要吝啬小心心噢