error C2440: “=”: 无法从“std:string”转换为“char”解决办法

error C2440: “=”: 无法从“std::string”转换为“char”
3 大学物理,66.00,C++,79.00,工程制图,88.00,
这样的课程信息 从记录了所有科目以及成绩的字符串s提取各科信息,最后p记录科目,q记录成绩

  bool StudentsBST:: readtobst()
{
  fstream f;
char s[200];
int n,t=0;//n是所学科目的数量,t记录的是文件中文字的行数,也即是学生人数
f.open( "Student.txt", ios::in) ;
char Stu_id[8], Stu_name[8], Stu_key[6], Stu_ban[8];
  while(f>>Stu_id>>Stu_name>>Stu_key>>Stu_ban>>s);
{
t++;
}
f.close();
if(t)
{
f.open( "Student.txt", ios::in);
while(f>>Stu_id>>Stu_name>>Stu_key>>Stu_ban>>n>>s)
{
//以下从记录了所有科目以及成绩的字符串s提取各科信息,最后p记录科目,q记录成绩
string str=s;
int len=str.length();
int j, v;
string sign=",";
int m=2*n-1;
int i=0;
string y;
string *p=new string[n];
double *q=new double[n];
for(j=0;j<len;j++)
{

if(str[j]=sign)
{
if(m%2)
{
p[i]=y;
}
  else
{
char t[100];
sprintf(t,"%d",v);
y=t;
q[i]=v;
i++;
}
y.empty();
  m--;
  continue;
}
y+=str[j];
}
char u[100];
sprintf(u,"%d",v);
y=u;
q[i]=v;
for(i=0;i<n;i++)
{
appsbj(Stu_id,p[i],q[i]); //调用追加课程信息的成员函数
}
delete[]p;
delete[]q;
}
f.close();
}
cout<<Stu_id<<Stu_name<<Stu_key<<Stu_ban<<n<<s<<endl;
return true;
}


红色部分显示编译错误 error C2440: “=”: 无法从“std::string”转换为“char”

------解决方案--------------------
另一帖回过了。结吧。
------解决方案--------------------
给分我。。。