【HJ90】合法IP(输入输出格式)
【摘要】
1.题目
2.法一
首先想到的可能是将给定的IP地址根据三个点进行分割成4段,再进行判断合法性,但其实可以直接利用scanf的输入格式判断每个ip[i]即可。
#include<iost...
1.题目
2.法一
首先想到的可能是将给定的IP地址根据三个点进行分割成4段,再进行判断合法性,但其实可以直接利用scanf的输入格式判断每个ip[i]
即可。
#include<iostream>
#include<string>
int ip[4];
using namespace std;
int main(){
while(scanf("%d.%d.%d.%d",&ip[0],&ip[1],&ip[2],&ip[3])!=EOF){
int i=0;
for(i=0;i<4;i++){
if(255<ip[i] || ip[i]<0){//ip地址是不合法的
cout<<"NO"<<endl;
break;
}
}
if(i==4){
cout<<"YES"<<endl;
}
}
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
3.法二:
就是按照一开始说的对字符串进行分割,逐个判断:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
string s;
while(cin >> s){
int n=s.size();vector<int> v;bool isValid=true;
int num_i=count(s.begin(),s.end(),'.');
if(num_i!=3)
cout << "NO" <<endl;
for(int i=0;i<4;i++){
int index=s.find('.');
v.push_back(stoi(s.substr(0,index)));
s=s.substr(index+1);
}
for(int i=0;i<v.size();i++){
if(v[i]<0 || v[i]>255)
isValid=false;
}
if(isValid)
cout << "YES" <<endl;
else
cout << "NO" <<endl;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。
原文链接:andyguo.blog.csdn.net/article/details/113875949
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)