以字符串形式输入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 = "";}elsesnum += 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转intif(number>=0 && number<=255) //判断数字是否合法rcount += 1;}if(rcount == 4)cout << "YES" << endl;elsecout << "NO" << endl;}}return 0;}