正弦


私信TA

用户名:qq15582632151

访问量:32272

签 名:

等  级
排  名 145
经  验 7352
参赛次数 0
文章发表 57
年  龄 0
在职情况 学生
学  校 小学生
专  业

  自我简介:

TA的其他文章

解题思路:     用'.'分隔字符串,将字符串变为整数,判断是否处于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;
}


 

0.0分

0 人评分

  评论区

好像有点问题  比如1.1a.1.1也是Y
2019-05-05 23:44:54
欢迎大神指教~ 也不要吝啬小心心噢
2018-07-28 22:03:46
  • «
  • 1
  • »