求助aaa
查看原帖
求助aaa
1182071
HanZengZhao楼主2025/7/3 23:00

哪位大佬能教教我判断一个符合规范的地址串怎么写啊

#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;
}
2025/7/3 23:00
加载中...