1.    CString  -->  char*

(1)传给未分配内存的指针

CString cstr ="ASDDSD";

char *ch =cstr.GetBuffer(cstr.GetLength()+ 1);

cstr.ReleaseBuffer();   //使用完后及时释放,以便能使用其它的CString成员函数

//修改ch指向的值等于修改cstr里面的值

//用完ch后,不用deletech,因为这样会破坏cstr内部空间,容易造成程序崩溃

(2)赋给已分配内存的char *

CString cstr1 ="ASDDSD";

int strLength =cstr1.GetLength() + 1;

char *pValue =new char[strLength];

strncpy(pValue,cstr1, strLength);

2.    CString  -->  const char*

传给未分配内存的const char*(LPCTSTR)指针

CStringcstr(asdd);      //CString cstr=”asdd”;

const char* ch =(LPCTSTR)cstr;

//ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全。

3.    CString  -->  char[]

赋给已分配内存char[]数组.

CString cstr2 ="ASDDSD";

int strLength2= cstr2.GetLength() + 1;

charchArray[100];

memset(chArray,0, sizeof(bool) * 100); //将数组的垃圾内容清空.

strncpy(chArray, cstr2, strLength2);

//strncpy(chArray,(LPCTSTR) cstr2,sizeof(chArray));

4.    string  -->  char*

string 是c++标准库里面其中一个,封装了对字符串的操作。

(1)data(),返回没有”\0“的字符串数组

stringstr="abc";

char*p=str.data();

(2)c_str 返回有”\0“的字符串数组

stringstr="gdfd";

char*p=str.c_str();

(3)copy

stringstr="hello";

char p[40];

str.copy(p,5,0); //这里5代表复制几个字符,0代表复制的位置

*(p+5)='\0';  //主意一定要手动加上结束符

cout < <p;

5.    string  -->  CString

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

//用c_str()确实比data()要好

6.    char*  -->  CString

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

7.    char*  -->  string

strings(char *);

注:标准C里没有string,char *==char []==string

8.    string  -->   char *

char *p =string.c_str();

9.    CString  -->  string

strings(CString.GetBuffer(CString.GetLength()));

//GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间

10.  CString  -->  char *

charpoint=strtest.GetBuffer(strtest.GetLength());

//不建议用(LPCTSTR)进行强制类型转化,这样strtest大小发生变化时会出现错误。

11.   CString  -->  int

将字符转换为整数,可以使用atoi、_atoi64,类似的还有相关函数atol(转为长整型)、atof(转为浮点小数)等。

CString ss=″1212.12″;

inttemp=atoi(ss);

12.  char*   -->   int

intatoi(const char *nptr);

long atol(const char *nptr);

long long atoll(const char *nptr);

long long atoq(const char *nptr);

13.  CString  -->  int

可以使用CString的Format函数,Format函数的功能很强,值得你研究一下。

CString s;

inti = 64;

s.Format(“%d”, i);

//如果是使用char数组,也可以使用sprintf函数。

补充:

Cstring的相关成员函数:http://www.cnblogs.com/Caiqinghua/archive/2009/02/16/1391190.html

微软对这方面的总结:http://msdn.microsoft.com/zh-cn/library/vstudio/ms235631.aspx

不能将参数 1 从“char [10]”转换为“LPTSTR”:

解决:http://www.xuebuyuan.com/833065.html

不能将参数 1 从“CString”转换为“const char *”

解决:http://fengqing888.blog.163.com/blog/static/330114162012016103558408/

参考来源:

http://blog.minidx.com/2009/03/03/2209.html

http://blog.csdn.net/sszgg2006/article/details/8667945

MFCC中CString, int, string, char之间的转换相关推荐

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

    <C++标准函数库>中说的   有三个函数可以将字符串的内容转换为字符数组和C-string   1.data(),返回没有"\0"的字符串数组   2,c_str() ...

  2. CString,int,string,char*之间的转换(转)

    ............................................................... <C++标准函数库>中说的   有三个函数可以将字符串的内容 ...

  3. VC之CString,wchar_t,int,string,char*之间的转换

    VC之CString,wchar_t,int,string,char*之间的转换 1. CString 转 wchar_t CString path = "asdf"; wchar ...

  4. cstring转为string vc_VC之CString,wchar_t,int,string,char*之间的转换-阿里云开发者社区

    VC之CString,wchar_t,int,string,char*之间的转换 1. CString 转 wchar_t CString path = "asdf"; wchar ...

  5. MFC中CString,int,string,char * ,char[] 之间互转

    <1> (1)string 转 CString  CString.format("%s", string.c_str());   (2)char 转 CStri ...

  6. CString,string,char*之间的转换(转)

    Bluestorm's Space 博客园 首页 新随笔 联系 订阅 管理 随笔 - 588  文章 - 3  评论 - 137 CString,string,char*之间的转换(转) 这三种类型各 ...

  7. c 语言 uint8 转char,在C中的uint8和char之间的转换

    我有一个API来实现对EEPROM的写入操作.下面是它的声明:在C中的uint8和char之间的转换 CYBLE_API_RESULT_T CyBle_StoreAppData (uint8 * sr ...

  8. VC之CString,wchar_t,int,string,char*之间的转换方法

    1. CString 转 wchar_t CString path = "asdf"; wchar_t wstr[256] = path.AllocSysString(); 或者: ...

  9. MFC中的CString.Format及CString,string,char*之间的转换

    1.CString.Format的使用:https://blog.csdn.net/wangkaishou/article/details/5846152 2.CString,string,char* ...

最新文章

  1. elk日志分析系统_部署ELK企业内部日志分析系统
  2. fedora如何隐藏顶部状态栏_如何使用PDF Arranger来对PDF文件进行排版和修改
  3. “产教融合新范式,校企聚力新实践”——2018杭州云栖大会大学合作专场论坛成功举办...
  4. c语言Winmain 错误,C语言编译错误 undefined reference to `WinMain@16'
  5. Spark Master的注册机制与状态管理
  6. java对unicode转码,Unicode编码和中文互转(JAVA实现)
  7. UVA10394 Twin Primes【孪生素数】
  8. Json文件转Map(三)之获取嵌套Map值
  9. matlab和origin的区别,Matlab与Origin的区别
  10. Zemax学习笔记——Zemax序列坐标系理解及坐标断点
  11. android小米4c 权限,小米手机4c详细刷成开发版获得Root权限的步骤
  12. 脉歌蓝牙耳机线评测_感受蓝牙5.0带来的震撼——脉歌T1000Pro蓝牙耳机轻体验
  13. 条形码 Ean13 的校验方法
  14. vscode能写winform窗体吗_VSCode——愉快的写C#
  15. 多线程与高并发day04
  16. oracle12c 一键卸载
  17. hdu 2897 邂逅明下
  18. 无源波分和彩光模块_波分光模块详细介绍
  19. 软件生命周期中的测试概念,IT软件生命周期中的重要概念
  20. SurfaceView 加速 开启硬件加速

热门文章

  1. SSCTF-2017-web-writeup
  2. tmux使用及个性化配置
  3. Selenium学习笔记4--获取页面元素内容
  4. ps:暂存盘已满异常
  5. MATLAB智能算法实现 (一)
  6. 局域网内大幅提高网速
  7. Egret 4.1.6 和 LayaBox(LayaAir 2.0) 的 易用性 对比
  8. OriginLab OriginPro 8.1 SR3绿色注册版 – 专业绘图与数据分析软件
  9. 计算机应用基础考试卷子2096,基于ATA考试的计算机应用基础课程的教学解析
  10. 「宮崎駿とジブリ美術館』に迷ったのですか?作者は逝世者