设为首页 加入收藏

TOP

CString,int,string,char*之间的转换
2014-11-23 18:20:25 】 浏览:185
Tags:CString int string char 之间 转换

  项目中经常用到各种不同的语言的朋友们应该会比较有这样的体会:一种开发语言用了比较长的时间,突然间转到另外一种语言的话,不管是数据类型或者语法结构,多多少少都会有那么一点不适应。哪怕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);


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Windows消息机制要点 下一篇typedef函数指针的用法(附例子)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目