复数输入
complex rl(string s,complex t1)
{
int l=s.length();
if(s[l-1]!='i')//仅实数
{
int n=0,i=0;
for(i=0;i<l;i++)
{
int t=(int)s[i]-48;
if(t>=0&&t<=9)
{
n=n*10+t;
}
}
if(s[0]=='-'){n=-n;}
t1.set(n,0);
}
else
{
int n=0,m=0,i=0;
int flag=1;
int sign=0;
if(s[0]=='i'){n=0;m=1;}
else if(s[1]=='i'&&s[0]=='-'){n=0;m=-1;}
else
{
for(i=0;i<l;i++)
{ if(i!=0)
{
if(s[i]=='+'||s[i]=='-'){flag=2;sign=i;}
}
if(flag==1)
{
int t=(int)s[i]-48;
if(t>=0&&t<=9)
{
n=n*10+t;
}
}
if(flag==2)
{
if(s[i]=='+'&&s[i+1]=='i'){m=1;;}
int t=(int)s[i]-48;
if(t>=0&&t<=9)
{
m=m*10+t;
}
}
}
if(flag==1){m=n;n=0;}//flag=1,仅虚数;flag=2,实+虚;
if(flag==1)
{
if(s[0]=='-')
{
m=-m;
}
}
else
{
if(s[0]=='-'){n=-n;}
if(s[sign]=='-'&&m!=-1){m=-m;}
}
}
t1.set(n,m);
}
return t1;
}