【P7911 网络连接】C++灵异改数据事件
查看原帖
【P7911 网络连接】C++灵异改数据事件
1395068
LiyingshuoBaoling楼主2024/9/30 16:20

先看代码

#include <bits/stdc++.h> 
using namespace std;
#define int long long
struct clients{
	char *ip;
	int count;
};
vector<clients>servers;
bool check(char s[30]){
	int num=0,cnt=0,len=strlen(s);
	bool flag=0;
	for(int i=0;i<len;i++){
		if(i==0){
			if(s[i]>='0' && s[i]<='9')num=s[i]-'0';
			else return 0;
		}
		else{
			if(s[i]>='0' && s[i]<='9'){
				num=num*10+s[i]-'0';
				if((num>255 && !flag) || num>65535)return 0;
			}
			else{
				if(flag)return 0;
				if(s[i]=='.')num=0,cnt++;
				else if(s[i]==':'){
					if(cnt!=3 || flag==1)return 0;
					num=0;
					flag=1;
				}
				else return 0;
			}
		}
	}
	if(flag && cnt==3)return 1;
	return 0;
}
bool create_server(char s[30]){
	int n=servers.size();
	for(int i=0;i<n;i++)
	{
		if(s==servers[i].ip)
		{
			//printf("123\n");
			return 0;
		}
	}
	clients tmp;
	tmp.ip=s;
	tmp.count=0;
	servers.push_back(tmp);
	return 1;
}
int create_client(char s[30])
{
	int n=servers.size();
	for(int i=0;i<n;i++)
	{
		if(s==servers[i].ip)
		{
			servers[i].count++;
			return servers[i].count;
		}
	}
	return -1;
}
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin>>t;
	while(t--)
	{
		//if(servers.size()>0)cout<<servers[0].ip<<endl;
		char op[30],ad[30];
		cin>>op>>ad;
		//cout<<(&ad)<<" "<<(&servers[0].ip)<<endl;
		//if(servers.size()>0)cout<<servers[0].ip<<endl;
		if(check(ad))
		{
			if(op[0]=='S')
			{
				if(create_server(ad))printf("OK\n");
				else printf("FAIL\n");
			}
			else
			{
				int ret=create_client(ad);
				if(ret==-1)printf("FAIL\n");
				else printf("%d\n",ret);
			}
		}
		else printf("ERR\n");
		int n=servers.size();/*
		for(int i=0;i<n;i++)
		{
			printf("%s\n",servers[i].ip);
		}
		printf("\n");*/
	}
	return 0;
}

serversi .ipservers_i\space.ip 本来是 1.1.1.2:11.1.1.2:1 ,当 adad 输入后,serversi .ipservers_i\space.ip 竟然马上变成 adad 了!

地址也没有重合

求助!!!!!!!!!!

2024/9/30 16:20
加载中...