zoukankan      html  css  js  c++  java
  • IP判断

    题目描述

    ​ 在基于Internet的程序中,我们常常需要判断一个IP字符串的合法性。
    合法的IP是这样的形式:
    A.B.C.D
    其中A、B、C、D均为位于[0, 255]中的整数。为了简单起见,我们规定这四个整数中不允许有前导零存在,如001这种情况。
    现在,请你来完成这个判断程序吧_

    输入

    ​ 输入由多行组成,每行是一个字符串,输入由“End of file”结束。
    字符串长度最大为30,且不含空格和不可见字符

    输出

    ​ 对于每一个输入,单独输出一行
    如果该字符串是合法的IP,输出Y,否则,输出N

    样例输入

    1.2.3.4
    a.b.c.d
    267.43.64.12
    12.34.56.bb
    210.43.64.129
    -123.4.5.6
    

    样例输出

    Y
    N
    N
    N
    Y
    N
    

    代码

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<cmath>
    #include<sstream>
    using namespace std;
    int main()
    {
        string s;
        stringstream ss;
        while(getline(cin,s)&&s!="End of file")
        {
            int f=0;
            for(int i=0;i<s.size();i++)
                if(s[i]=='.') s[i]=' ';
            ss.clear();
            ss<<s;
            string buf;
            while(ss>>buf)
            {
    
                for(int i=0;i<buf.size();i++)
                {
                    if(!(buf[i]>='0'&&buf[i]<='9'))
                    {
                        cout<<"N"<<endl;
                        f=1;
                        break;
                    }
                }
                if(f) break;
                int b;
                stringstream st;
                st<<buf;
                st>>b;
                if(!(b>=0&&b<=255))
                {
                    cout<<"N"<<endl;
                    f=1;
                    break;
                }
                if(f) break;
    
            }
            if (!f)cout<<"Y"<<endl;
            ss.str("");
        }
        return 0;
    }
    
    

    思路

    复习一下字符串转数字吧。

    stringstream 挺好用的 ,复用时要记得清空缓存。

    对于string类型字符串 用stringstream 转为数字

    对于char 型 用 sscanf(s,"%d",&b) 转为整数。

  • 相关阅读:
    java的访问控制修饰符
    js将一个数组分割成二维子数组
    java的数组
    Java 变量类型
    java
    java的 %和 ^
    Python第三方库 -> 由于是ipynb格式,所以没有对应的输出结果
    获取浏览器历史记录 browserhistory
    虚拟机 CentOS 6.8 安装
    解决 django.db.utils.OperationalError: (1051, "Unknown table 'mydorm.users_studen t'")
  • 原文地址:https://www.cnblogs.com/xxffxx/p/12002039.html
Copyright © 2011-2022 走看看