MFC/C++/C中字符类型CString, int, string, char*之间的转换

时间:2022-06-12 22:56:51
  1. 1 CString,int,string,char*之间的转换
  2. string 转 CString
  3. CString.format("%s", string.c_str());
  4. char 转 CString
  5. CString.format("%s", char*);
  6. char 转 string
  7. string s(char *);
  8. string 转 char *
  9. char *p = string.c_str();
  10. //  CString转std::string
  11. CString str = dlg.GetPathName();
  12. setlocale(LC_ALL, "chs");
  13. char *p = new char[256];
  14. wcstombs( p, str, 256 );
  15. m_fileName = p;
  16. 1,string -> CString
  17. CString.format("%s", string.c_str());
  18. 用c_str()确实比data()要好.
  19. 2,char -> string
  20. string s(char *);
  21. 你的只能初始化,在不是初始化的地方最好还是用assign().
  22. 3,CString -> string
  23. string s(CString.GetBuffer());
  24. GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.
  25. 《C++标准函数库》中说的
  26. 有三个函数可以将字符串的内容转换为字符数组和C—string
  27. 1.data(),返回没有”\0“的字符串数组
  28. 2,c_str(),返回有”\0“的字符串数组
  29. 3,copy()
  30. CString互转int
  31. 将字符转换为整数,可以使用atoi、_atoi64或atol。
  32. 而将数字转换为CString变量,可以使用CString的Format函数。如
  33. CString s;
  34. int i = 64;
  35. s.Format("%d", i)
  36. Format函数的功能很强,值得你研究一下。
  37. void CStrDlg::OnButton1()
  38. {
  39. // TODO: Add your control notification handler code here
  40. CString
  41. ss="1212.12";
  42. int temp=atoi(ss);
  43. CString aa;
  44. aa.Format("%d",temp);
  45. AfxMessageBox("var is " + aa);
  46. }
  47. sart.Format("%s",buf);
  48. CString互转char*
  49. ///char * TO cstring
  50. CString strtest;
  51. char * charpoint;
  52. charpoint="give string a value";
  53. strtest=charpoint;
  54. ///cstring TO char *
  55. charpoint=strtest.GetBuffer(strtest.GetLength());
  56. 标准C里没有string,char *==char []==string
  57. 可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。
  58. CString转换 char[100]
  59. char a[100];
  60. CString str("aaaaaa");
  61. strncpy(a,(LPCTSTR)str,sizeof(a));
  62. 2 CString类型的转换成int
  63. CString类型的转换成int
  64. 将字符转换为整数,可以使用atoi、_atoi64或atol。
  65. //CString aaa = "16" ;
  66. //int int_chage = atoi((lpcstr)aaa) ;
  67. 而将数字转换为CString变量,可以使用CString的Format函数。如
  68. CString s;
  69. int i = 64;
  70. s.Format("%d", i)
  71. Format函数的功能很强,值得你研究一下。
  72. 如果是使用char数组,也可以使用sprintf函数。
  73. //CString ss="1212.12";
  74. //int temp=atoi(ss);
  75. //CString aa;
  76. //aa.Format("%d",temp);
  77. 数字->字符串除了用CString::Format,还有FormatV、sprintf和不需要借助于Afx的itoa
  78. 3 char* 在装int
  79. #include <stdlib.h>
  80. int atoi(const char *nptr);
  81. long atol(const char *nptr);
  82. long long atoll(const char *nptr);
  83. long long atoq(const char *nptr);
  84. 4 CString,int,string,char*之间的转换
  85. string aa("aaa");
  86. char *c=aa.c_str();
  87. cannot convert from 'const char *' to 'char *'
  88. const char *c=aa.c_str();
  89. 5 CString,int,string,char*之间的转换
  90. string.c_str()只能转换成const char *,
  91. 要转成char *这样写:
  92. string mngName;
  93. char t[200]; memset(t,0,200); strcpy(t,mngName.c_str());

MFC/C++/C中字符类型CString, int, string, char*之间的转换的更多相关文章

  1. &lpar;转&rpar;CString&comma;int&comma;string&comma;char&ast;之间的转换

    CString,int,string,char*之间的转换http://www.cnblogs.com/greatverve/archive/2010/11/10/cstring-int-string ...

  2. VC CString&comma;int&comma;string&comma;char&ast;之间的转换

    CString转string : CString strMfc = "test"; std::string strStr; strStr = strMfc.GetBuffer(); ...

  3. 数据结构基础之memset---有memset 抛出的int 和 char 之间的转换和字节对齐

    今天晚上,在做滤波算法时,里面用到很多float 和int 以及char 之间的类型强制转换,后面滤波完发现图片有些区域块,有过度曝光的白光,我就跟踪,以为是char 字符数字数据溢出问题,加了0-2 ...

  4. mfc CString&comma;string&comma;char&ast; 之间的转换

    知识点: CString转char*,string string转char*,CString char* 转CString,string 一.CString转char*,string //字串转换测试 ...

  5. CString&comma;string&comma;char&ast;之间的转换(转)

    这三种类型各有各的优点,比如CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差.string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的:char*是从学习C语 ...

  6. 【转载】CString&comma;string&comma;char&ast;之间的转换

    本文转自 <> 这三种类型各有各的优点,比如CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差.string是使用STL时必不可少的类型,所以是做工程时必须熟练掌 ...

  7. 【转】char&ast;,string,CString,int,char&lbrack;&rsqb;之间的转换

    CString 头文件#include <cstring>.CString 转char * CString cstr;  ..data(),返回没有”/“的字符串数组..c_str(),返 ...

  8. Java进阶&lpar;二十三&rpar;java中long类型转换为int类型

    java中long类型转换为int类型 由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参 ...

  9. 浅谈C&num;语言中的各种数据类型,与数据类型之间的转换

    什么是数据类型? 数据类型,百度百科是这样解释的:数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作.这样的解释对于一个初学者来说未必太过于深奥. 简单点说,数据类型就是不同长度的 ...

随机推荐

  1. 如何设置mysql远程访问及防火墙设置

    笔者在一个实际的项目中需要MYSQL远程访问. 情景: 安装好Mysql, 本地访问正常,很奇怪局域的机器都无法访问该服务器上的MYSQL数据库. 经过资料查找 原来Mysql默认是不可以通过远程机器 ...

  2. 懒加载的用处和赋nil操作&lbrack;iOS开发教程&rsqb;

    懒加载的用处和赋nil操作 1:数据,清空操作: self.array = nil; 2:归档从新从本地获取数据 self.archive = nil; ##id = nil的用处 block当参数, ...

  3. MapKit地图划线

    只要用于获取用户位置都要取得用户授权 #import "ViewController.h" #import <MapKit/MapKit.h> @interface V ...

  4. android studio 2&period;0 Gradle HttpProxy 设置

    Android Studio 一直Failed to import Gradle project: Connection timed out: connect Android Studio 2.0 里 ...

  5. Skulpt

    Skulpt Python. Client side. Skulpt is an entirely in-browser implementation of Python. No preprocess ...

  6. zepto&period;js介绍

    是一个阉割版的jQuery zepto不支持jQuery过于复杂的选择器,比如:first :last :eq zepto如果要用动画必须再次引包 zepto能将css3中transition支持的动 ...

  7. 文件无法复制的原因-IT33

    Win7系统复制数据至其他硬盘或者是移动存储设备是,有时会发生无法复制文件过大的情况.这里先大致介绍一下硬盘文件系统分为NFTS格式和FAT32格式这两种,其中FAT32仅支持单次移动4G以下容量的数 ...

  8. Postgresql 密码设置

    今天下午 陷进去了 其实很简单的一个事情结果浪费了 接近一个小时. 做事情必须要细致一些. 自己的确做的不好. 这里面简单说一下pg_hba.conf 和 postgresql 密码的一些设置问题. ...

  9. 《DSP using MATLAB》Problem 6&period;24

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  10. Android拖动和缩放

    拖拽和缩放 多点触控的理论学完了之后,这里开始实践.本节主要介绍使用onTouchEvent()方法处理触控事件. 拖动一个对象 如果你使用的是Android 3.0或者之后的系统,那么你可以使用内置 ...