char szbuff[256];
CString m_string;
应该怎么做才能把m_string中的字符给szbuff,反过来又应该怎么办呢?
我试了很多种方法都不行...
大人们进来救命啊!

解决方案 »

  1.   

    sprintf(szbuff,"%s",m_string);
    m_string.Format("%s",szbuff);
      

  2.   


    1) m_string = szbuff;
    2) strcpy(szbuff, (LPCSTR)m_string);
      

  3.   

    strcpy(szbuff, m_string);
    m_string=szbuff;
      

  4.   

    strcpy()第2个参数是const char*
      

  5.   

    sprintf(szbuff,"%s",m_string);
    m_string.Format("%s",szbuff);m_string=szbuff;  //这个方法不好,容易出错
      

  6.   

    谢谢楼上的几位,好象我弄错问题了。
    m_string是类向导中定义的一个编辑框的CString类型的变量。
    我是想把我在编辑框中输入的字符串给一个字符数组。然后把字符数组输出显示。
    按楼上几位的方法显示的仍然是乱码。
      

  7.   

    CString s;
    ....
    假设s中已经通过对话框获得的字符串
    int len;
    len=s.GetLength();//取得字符串长度
    char *p=new char[len+1];利用指针动态分配空间
    p=strcpy(p,s.GetBuffer(len) );复制
    if (p)
    {
        MessageBox(0,p,"this is a string",MB_OK);
        delete []p;
    }
    ///////////////
    当然,如果能够事先确定最大长度也可以这样
    #define MAXSTRING 100
    int len;
    char str[MAXSTRING];//声明数组len=s.GetLength();//取得字符串长度
    str=strcpy(str,s.GetBuffer(len) );复制MessageBox(0,p,"this is a string",MB_OK);
      

  8.   

    晕,老打错
    最后一行应该是用str
    MessageBox(0,str,"this is a string",MB_OK);
      

  9.   

    选中编辑框(假设是IDC_EDIT1)
    CTRL+W打开向导,选择“Member Variables”成员变量选项卡,增加一个CString类型的变量取个名,比如“m_str”然后选择“Message Map”消息映射选项卡,选择EN_CHANGE或者其他你希望的触发消息,增加事件函数
    然后编辑这个函数
    在里面这么写UpdateData(true);
    MessageBox(m_s,"",0);
    //UpdateData()中的参数含义是
    参数true代表数据更新由控件传递到变量,如果为false则相反,这样用于在控件中显示变量。
      

  10.   

    忘了说明了
    当增加了事件(消息)处理函数后,该函数名叫OnChangeEdit1() ,因为我先前假设你取编辑框的ID是IDC_EDIT1
      

  11.   

    晕又写错了,输出时应该是用m_str
    MessageBox(m_str,"",0);另外MessageBox(m_str,"",0);放在change消息处理函数中,会使得每输入一个字符就会跳出一个对话框显示当前的m_str,你可以加一个按钮,在这个按钮的CLICK事件函数中将MessageBox(m_str,"",0);加进去,这样,运行时,当你完成输入后点这个按钮的时候输出字符串
      

  12.   

    给你的编辑框映射一个变量,然后Updatedata()
      

  13.   

    太谢谢wux2了,这么耐心解答。