原题链接:IP判断
解题思路: 用'.'分隔字符串,将字符串变为整数,判断是否处于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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复