求助
查看原帖
求助
832774
wish_you_wa_happy楼主2024/8/23 12:18
#include <iostream>
using namespace std;
long long n;
int cnt=0;
struct server{
	string num;
	long long bianh;
}ser[1001];
bool check(string s)
{
	int len=s.length();
	long long tmp=0;
	int cnt1=0,cnt2=0,cnt3=0;
	for (int i=0;i<len;i++)
	{
		if ((i==0||s[i-1]=='.'||s[i-1]==':')&&s[i]>='0'&&s[i]<='9')cnt3++;
		if (s[i]=='.'||s[i]==':')
		{
			if (s[i]=='.')
			{
				cnt1++;
			}
			else if (s[i]==':')cnt2++;
			if (cnt1<3&&cnt2)
			{
				return false;
			}
			if (!cnt3)
			{
				return false;
			}
			if (0<=tmp&&tmp<=255)
			{
				tmp=0;
				continue;
			}
			else return false;
		}
		else if (s[i]<'0'||s[i]>'9')
		{
			return false;
		}
		if (i&&!tmp&&s[i-1]=='0')
		{
			return false;
		}
		tmp=tmp*10+s[i]-'0';
	}
	if (cnt1!=3||cnt2!=1||cnt3!=5)return false;
	if (0<tmp&&tmp<=65535)return true;
	else
	{
		return false;
	}
}
int main ()
{
	cin>>n;
	int cnt,sersum=0;
	string a,b;
	for (int i=1;i<=n;i++)
	{
		cin>>a>>b;
		if (a=="Server")
		{
			cnt++;
			if (!check(b))
			{
				cout<<"ERR"<<endl;
				continue;
			}
			int flag=1;
			for (int i=1;i<=sersum;i++)
			{
				if (b==ser[i].num)
				{
					cout<<"FAIL"<<endl;
					flag=0;
					break;
				}
			}
			if (flag==1)
			{
				cout<<"OK"<<endl;
				sersum++;
				ser[sersum].bianh=cnt;
				ser[sersum].num=b;
			}
		}
		else if (a=="Client")
		{
			cnt++;
			if (!check(b))
			{
				cout<<"ERR"<<endl;
				continue;
			}
			int flag=1;
			for (int i=1;i<=sersum;i++)
			{
				if (b==ser[i].num)
				{
					cout<<ser[i].bianh<<endl;
					flag=0;
					break;
				}
			}
			if (flag==1)
			{
				cout<<"FUIL"<<endl;		
			}
		}
	}
}

为什么输入没有自动换行

2024/8/23 12:18
加载中...