以字符串形式输入n行IP地址,格式为a.b.c.d,每个数字均在[0,255]之间,判断ip地址是否合法,是输出YES,否输出NO。
输入样例:
2
1.2.3.4
172.168.0.300
输出样例:
YES
NO
注意:string转int需要头文件:
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
int n, number, len;
int num=0; //计数器
int rcount=0; //计算合法数字的个数
string p, snum="";
string adr[5]; //保存各个数字
cin >> n; //输入字符串的个数
for(int i=0;i<n;i++)
{
cin >> p;
len = p.size();
for(int j=0;j<len;j++)
{
if(p[j]=='.')
{
adr[num++] = snum; //将合并的字符串存入数组
snum = "";
}
else
snum += p[j]; //字符合并为字符串
}
adr[num] = snum; //将最后一个小数点后的数字存入
if(num!=3) //判断格式是否为a.b.c.d
{
cout << "NO" << endl;
}
else
{
for(int j=0;j<4;j++)
{
number = atoi(adr[j].c_str()); //string转int
if(number>=0 && number<=255) //判断数字是否合法
rcount += 1;
}
if(rcount == 4)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
}
return 0;
}
版权声明:本文为dcjmessi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。