CString,int,string,char*之间的转换
来源:优易学  2010-1-14 19:33:59   【优易学:中国教育考试门户网】   资料下载   IT书店

  项目中经常用到各种不同的语言的朋友们应该会比较有这样的体会:一种开发语言用了比较长的时间,突然间转到另外一种语言的话,不管是数据类型或者语法结构,多多少少都会有那么一点不适应。哪怕MFC中的类型与标准C++也是一样的。下面是MFC/C++/C中字符类型CString, int, string, char*之间的转换的说明与举例,经常用的东西,相信对于用C/C++的朋友,还是比较有用的。

  1 CString,int,string,char*之间的转换

  string转CString

  CString.format("%s", string.c_str());

  char转CString

  CString.format("%s", char*);

  char转string

  string s(char *);

  string转char *

  char *p = string.c_str();

  // CString转std::string

  CString str = dlg.GetPathName(); setlocale(LC_ALL, "chs");

  char *p = new char[256];

  wcstombs( p, str, 256 );

  m_fileName = p;

  1,string -> CString CString.format("%s", string.c_str());用c_str()确实比data()要好. 2,char -> string

  string s(char *);

  你的只能初始化,在不是初始化的地方最好还是用assign(). 3,CString -> string string s(CString.GetBuffer()); GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

  《C++标准函数库》中说的

  有三个函数可以将字符串的内容转换为字符数组和C—string

  1.data(),返回没有“\0”的字符串数组2,c_str(),返回有“\0”的字符串数组3,copy()

  CString互转int

  将字符转换为整数,可以使用atoi、_atoi64或atol。

  而将数字转换为CString变量,可以使用CString的Format函数。如

  CString s;

  int i = 64;

  s.Format("%d", i) Format函数的功能很强,值得你研究一下。

  void CStrDlg::OnButton1()

  {

  // TODO: Add your control notification handler code here

  CString

  ss="1212.12";

  int temp=atoi(ss);

  CString aa;

  aa.Format("%d",temp);

  AfxMessageBox("var is " + aa);

  }

[1] [2] 下一页

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训