北邮机试 | bupt oj | 101. IP地址

版权声明:本人小白,有错误之处恳请指出,感激不尽;欢迎转载 https://blog.csdn.net/stone_fall/article/details/88638563

时间限制 1000 ms 内存限制 65536 KB

题目描述

我们都学过计算机网络,了解IPV4地址的点分十进制表示法。

你的任务很简单:判断一个字符串是否是一个合法的点分十进制表示的IPV4地址。

最低的IP地址是0.0.0.0,最高的IP地址是255.255.255.255。

PS :方便起见,认为形似00.00.00.00的IP地址也是合法的。

输入格式

第一行是一个整数T,代表输入还剩下T行

以下的T行,每行都是一个字符串(不含空白字符)。字符串的长度保证不超过15,不小于1.

输出格式

对于每个字符串,输出一行。

如果它是一个合法的IPV4地址,输出Yes。

否则,输出No。

输入样例

3
59.64.130.18
f.a.t.e
1.23.45.678

输出样例

Yes
No
No

AC代码来源

https://blog.csdn.net/birdstorm_s/article/details/21036929

确实不知道怎么处理非法输入等问题。这里学到了。

#define MAXN 20

int main()
{
    int t, a, b, c, d;
    char s[MAXN], k;
    scanf("%d",&t);
    while(t--){
        scanf("%s",s); k=0;
        if(sscanf(s,"%d.%d.%d.%d%c",&a,&b,&c,&d,&k)==4){
            if (k==0 && 0<=a && a<=255 && 0<=b && b<=255 && 0<=c && c<=255 && 0<=d && d<=255) puts("Yes");
            else puts("No");
        }
        else puts("No");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/stone_fall/article/details/88638563