哪位大佬能教教我判断一个符合规范的地址串怎么写啊
#include<bits/stdc++.h>
using namespace std;
map<string,int> mp;
bool pd(string m){//这里是判断字符串是否合法
int a=0;
int di=0,mo=0,b=0;
for(int i=0;i<m.size();i++){
if(m[i]=='.'||m[i]==':'||(m[i]>='1'&&m[i]<='9')){
if(m[i]=='.'){
if(a>255||a<0){
return 0;
}
cout<<a<<' '<<i<<endl;
a=0;
}else if(m[i]==':'){
cout<<a<<' '<<a<<' '<<i<<endl;
if(a>255||a<0){
return 0;
}
a=0;
}else if(i==m.size()-1){
if(a>65535||a<0){
return 0;
}
return 1;
}else{
a=a*10+(m[i]-'0');
}
}else{
return 0;
}
}
}
int main(){
int n;
cin>>n;
int s=1;
for(int o=1;o<=n;o++){
string op,ad;
cin>>op>>ad;
if(pd(ad)){
cout<<"ERR"<<endl;
continue;
}
if(op[0]=='S'){
if(mp[ad]!=0){
cout<<"FAIL"<<endl;
}else{
mp[ad]=o;
cout<<"OK"<<endl;
}
}else{
if(mp[ad]==0){
cout<<"FAIL"<<endl;
}else{
cout<<mp[ad]<<endl;
}
}
}
return 0;
}