class Plant  
{
public:
Plant();
char Number[100];         //航班号
char Origin[100];         //出发地
char Arr[100];            //到达地 
char DepartureTime[100];  //出发时间 
char ArrivalTime[100];    //到达时间
int  iCount;              //票数
Plant *array;
virtual ~Plant();};
我定义的一个类  数据为char型  
现在要添加一个数据
         for(p=head;p->array!=NULL;p=p->array);
q=new Plant;
p->array=q;
q->Number=m_number;
m_comboorigin.GetLBText(m_comboorigin.GetCurSel(),m_Getstring);
q->Origin=m_Getstring;
         m_comboarr.GetLBText(m_comboarr.GetCurSel(),m_Getstring);
q->Arr=m_Getstring;
q->DepartureTime=m_apart.Format("%H:%M");
q->ArrivalTime=m_arr.Format("%H:%M");
q->array=NULL;
用这个会提示错误 不能用=   我试过strcpy总是出错
 问下我就定义 char数组型怎么完成这个功能,我研究了好长时间
最好能改下改后的代码  谢谢  ,纠结了好多天了~

解决方案 »

  1.   

    strcpy应该是正确方法,要看你错误是什么才知道
      

  2.   

    strcpy( q->Number , "23r");
    要是数字的话则
    sprintf( q->Number , "%d" , 2312 );
      

  3.   

    m_Getstring是怎么定义的啊,CString类型?
      

  4.   

    字符串
    strcpy(q->Origin,m_Getstring.GetBuffer());m_number是数字的话
    sprintf(q->Number,"%d",m_number);
      

  5.   

    m_Getstring是CString类型的  
    for(p=head;p->array!=NULL;p=p->array);
    q=new Plant;
    p->array=q; strcpy(q->Number,m_number); m_comboorigin.GetLBText(m_comboorigin.GetCurSel(),m_Getstring);
            strcpy(q->Origin,m_Getstring);        m_comboarr.GetLBText(m_comboarr.GetCurSel(),m_Getstring);
    strcpy(q->Arr,m_Getstring); apart=m_apart.Format("%H:%M");
    strcpy(q->DepartureTime,apart); arrive=m_arr.Format("%H:%M");
    strcpy(q->ArrivalTime,arrive); q->array=NULL;
      

  6.   

    strcpy(q->Arr,m_Getstring); 
    改为 strcpy(q->Arr,LPCTSTR(m_Getstring));
    其他的类似
      

  7.   

    建议使用string 类,char型数组赋值是strcpy 的,开始时最好用menset()函数初始化下,有效内容的下一位最好加个结束符号\0,如果你定义了100,结果只用了10位,剩下的又没有出示话,那么第十一位开始就可能出现乱码,呵呵,这些只是个人建议,本人也是菜鸟,相互参考下
      

  8.   

    CString 类的确处理这个特别方便  但是我前面处理用CString会出很多问题,我只会用插入解决
      

  9.   


    说得不错,char型数组不好用
      

  10.   

    强制转换成LPCTSTR再赋值给char *
      

  11.   

    strcpy,或者写循环一个个来,或者用memcpy
      

  12.   

    CString类型转CHAR[]:WideCharToMultiByte
    WideCharToMultiByte(CP_OEMCP,0,m_CString,-1,chCHAR,m_CString.GetLength(),NULL,NULL);