设为首页收藏本站

中国膜结构网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

膜结构车棚
膜结构车棚膜结构资质国产膜材 膜结构网中国膜结构协会
查看: 199|回复: 1

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

[复制链接]
  • TA的每日心情
    开心
    2021-6-23 14:19
  • 签到天数: 1543 天

    [LV.Master]伴坛终老

    发表于 2020-12-29 14:01 | 显示全部楼层 |阅读模式
    1. VC 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 转 string
    11. string s(CString.GetBuffer());
    12. 1,string -> CString
    13. CString.format("%s", string.c_str());
    14. 用c_str()确实比data()要好.
    15. 2,char -> string
    16. string s(char *);
    17. 你的只能初始化,在不是初始化的地方最好还是用assign().
    18. 3,CString -> string
    19. string s(CString.GetBuffer());
    20. GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

    21. 《C++标准函数库》中说的
    22. 有三个函数可以将字符串的内容转换为字符数组和C—string
    23. 1.data(),返回没有”\0“的字符串数组
    24. 2,c_str(),返回有”\0“的字符串数组
    25. 3,copy()

    26. CString互转int
    27. 将字符转换为整数,可以使用atoi、_atoi64或atol。
    28. 而将数字转换为CString变量,可以使用CString的Format函数。如
    29. CString s;
    30. int i = 64;
    31. s.Format("%d", i)
    32. Format函数的功能很强,值得你研究一下。
    33. void CStrDlg::OnButton1()
    34. {
    35. // TODO: Add your control notification handler code here
    36. CString
    37. ss="1212.12";
    38. int temp=atoi(ss);
    39. CString aa;
    40. aa.Format("%d",temp);
    41. AfxMessageBox("var is " + aa);
    42. }
    43. sart.Format("%s",buf);
    44. CString互转char*
    45. ///char * TO cstring
    46. CString strtest;
    47. char * charpoint;
    48. charpoint="give string a value";
    49. strtest=charpoint;

    50. ///cstring TO char *
    51. charpoint=strtest.GetBuffer(strtest.GetLength());
    52. 标准C里没有string,char *==char []==string
    53. 可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。

    54. CString转换 char[100]
    55. char a[100];
    56. CString str("aaaaaa");
    57. strncpy(a,(LPCTSTR)str,sizeof(a));
    58. 2 CString类型的转换成int
    59. CString类型的转换成int
    60. 将字符转换为整数,可以使用atoi、_atoi64或atol。
    61. //CString aaa = "16" ;
    62. //int int_chage = atoi((lpcstr)aaa) ;

    63. 而将数字转换为CString变量,可以使用CString的Format函数。如
    64. CString s;
    65. int i = 64;
    66. s.Format("%d", i)
    67. Format函数的功能很强,值得你研究一下。
    68. 如果是使用char数组,也可以使用sprintf函数。
    69. //CString ss="1212.12";
    70. //int temp=atoi(ss);
    71. //CString aa;
    72. //aa.Format("%d",temp);

    73. 数字->字符串除了用CString::Format,还有FormatV、sprintf和不需要借助于Afx的itoa

    74. 3 char* 在装int
    75. #include <stdlib.h>

    76. int atoi(const char *nptr);
    77. long atol(const char *nptr);
    78. long long atoll(const char *nptr);
    79. long long atoq(const char *nptr);

    80. 4 CString,int,string,char*之间的转换
    81. string aa("aaa");
    82. char *c=aa.c_str();

    83. cannot convert from 'const char *' to 'char *'
    84. const char *c=aa.c_str();

    85. 5 CString,int,string,char*之间的转换
    86. string.c_str()只能转换成const char *,
    87. 要转成char *这样写:
    88. string mngName;
    89. char t[200]; memset(t,0,200); strcpy(t,mngName.c_str());



    90. UpdateData(TRUE)
    91. //比如CEDIT 控件连接的变量叫m_strEditString;
    92. if (m_strEditString.GetLength()>=500)
    93. {
    94. MessageBox(_T("长度不够"_,_T(""),MB_ICONSTOP)//ERROR
    95. }
    96. else
    97. {
    98. strcpy(st,m_strEditString.GetBuffer(0));
    99. }
    100. //以下是转换
    101. 1、CString::GetBuffer(0);//取得CString的char*
    102. 2、int intv=atoi(CString::GetBuffer(0));//CString to Int
    103. 3、float floatv=(float)atof(CString::GetBuffer(0));//CString to float
    104. 4、long longvv=atol(CString::GetBuffer(0));//CString to Long
    105. 5、double doublev=atof(CString::GetBuffer(0));//CString to Double
    106. 6、CString::Format(_T("%d,%f,%ld,%lf,%c,%s"),int,float,long,double,char,char*)//各类型到CString
    复制代码
    回复


    http://www.mjgw.org/ 专业从事膜结构设计、制作加工、施工安装的膜结构工程服务,能够为客户提供专业的膜结构整体解决方案。做中国最好的膜结构综合服务平台。欢迎大家联系电话:198-7840-1958,QQ:463017170.
    相关关键词:膜结构车棚,膜结构车棚覆盖,膜结构车棚公司,膜结构车棚多少钱,膜结构车棚厂家,膜结构车棚价格,社区膜结构车棚,膜结构车棚膜布厂家 ,膜结构车棚哪家好,膜结构车棚多少钱一米,膜结构车棚报价,膜结构车棚哪里有,膜结构车棚定制,膜结构车棚安装,膜结构车棚设计,膜结构车棚电话,膜结构车棚加工,膜结构车棚膜布价格,膜结构车棚批发,膜结构车棚制造商,膜结构车棚生产厂家,膜结构车棚设计,膜结构车棚施工,膜结构车棚多少钱一平米,膜结构车棚订制,张拉膜车棚,张拉膜车棚覆盖,张拉膜车棚公司,张拉膜车棚多少钱,张拉膜车棚厂家,张拉膜车棚价格,社区张拉膜车棚,张拉膜车棚膜布厂家 ,张拉膜车棚哪家好,张拉膜车棚多少钱一米,张拉膜车棚报价,张拉膜车棚哪里有,张拉膜车棚定制,张拉膜车棚安装,张拉膜车棚设计,张拉膜车棚电话,张拉膜车棚加工,张拉膜车棚膜布价格,张拉膜车棚批发,张拉膜车棚制造商,张拉膜车棚生产厂家,张拉膜车棚设计,张拉膜车棚施工,张拉膜车棚多少钱一平米,张拉膜车棚订制,常用膜材品牌:德国杜肯、法国法拉利、德国海德斯、德国米乐、日本平岗、韩国秀博、比利时希运、美国赫虏伯、中国科宝、上海慧遥。

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-23 14:19
  • 签到天数: 1543 天

    [LV.Master]伴坛终老

     楼主| 发表于 2020-12-29 16:01 | 显示全部楼层
    1. 字符串转换(部分类型是ObjectARX二次开发的)

    2. 开箱剁手 2019-07-30 13:57:00  193  收藏
    3. 分类专栏: ObjectARX二次开发学习
    4. 转载自:http://bbs.xdcad.net/forum.php?mod=viewthread&tid=668205&highlight

    5. 1.使用string必须添加头文件

    6. #include"string"
    7. using namespace std;
    8. 1
    9. 2
    10. 2.使用CString必须添加头文件(在非MFC工程中)

    11. #include"afx.h"
    12. 1
    13. 3.wchar_t

    14. wchar_t是C++的字符数据类型,char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,字符型无法表示wchar_t数据类型为16位,所能表示的字符数远超char型。
    15. 1
    16. 4.ACHAR类型(此类型是AUTODESK公司在adachar.h 头文件中定义 typedef wchar_t ACHAR;)

    17. #include "adachar.h"
    18. 1
    19. 5.USES_CONVERSION在atlconv.h头文件中定义

    20. #include "atlconv.h "
    21. 1
    22. 6.string->ACHAR*

    23. string str="string";
    24. ACHAR* ach;
    25. USES_CONVERSION;
    26. ach=(ACHAR*)A2CT(str.c_str());
    27. 1
    28. 2
    29. 3
    30. 4
    31. 7.ACHAR->string*

    32. ACHAR* ach;
    33. USES_CONVERSION;
    34. string temp=W2A(ach);
    35. 1
    36. 2
    37. 3
    38. 8.(wchar_t)ACHAR->char**

    39. char * ch;
    40. ACHAR* ach;
    41. USES_CONVERSION;
    42. ch=T2A(ach);
    43. 1
    44. 2
    45. 3
    46. 4
    47. 9.char->ACHAR**

    48. ACHAR* ach1;
    49. char * ch;
    50. 方法一:
    51. USES_CONVERSION;
    52. ach1=A2W(ch);

    53. 方法二:
    54. size_t convertedChars=0;//记录返回实际转换字符串的长度
    55. mbstowcs_s(&convertedChars,ach1,10,ch,_TRUNCATE);//10为ch的最大长度,随着需要而改变
    56. 1
    57. 2
    58. 3
    59. 4
    60. 5
    61. 6
    62. 7
    63. 8
    64. 9
    65. 10.int->string

    66. string str;
    67. int nNumber=10001;
    68. char cT[10];//把int转化为string
    69. _itoa_s(nNumber,cT,10);
    70. str=cT;或string str(cT);
    71. 1
    72. 2
    73. 3
    74. 4
    75. 5
    76. 11.CString->char*

    77. 方法一:
    78. char* ch;
    79. CString temp;
    80. ch=T2A(temp.GetBuffer(0));

    81. 方法二:
    82. 使用强制转换
    83. CString theString( "This is a test" );
    84. LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString;
    85. 1
    86. 2
    87. 3
    88. 4
    89. 5
    90. 6
    91. 7
    92. 8
    93. 9
    94. 12.char->CString*

    95. 方法一:
    96. 可以直接赋值
    97. CString cstr;
    98. char* ch;
    99. cstr=ch;

    100. 方法二:
    101. 通过使用Format函数
    102. char chArray[] = "This is a test";
    103. CString cstr;
    104. MBCS下(即没定义UNICODE时):
    105. cstr.Format(_T("%s"), chArray);
    106. 定义UNICODE时:
    107. USES_CONVERSION;
    108. cstr.Format(_T("%s"), A2W(chArray));
    109. 1
    110. 2
    111. 3
    112. 4
    113. 5
    114. 6
    115. 7
    116. 8
    117. 9
    118. 10
    119. 11
    120. 12
    121. 13
    122. 14
    123. 15
    124. 13.char->int*

    125. char* ch;
    126. int n=atoi(ch);
    127. 1
    128. 2
    129. 14.int->char*

    130. int n=45;
    131. char nCh[10];
    132. char* ch;
    133. itoa(n,nCh,16);//16为进制,可以取2,8,10,16等
    134. 也可以采用如下形式:ch=itoa(n,nCh,16);
    135. VS2005环境用:_itoa_s(n,nCh,2);
    136. 1
    137. 2
    138. 3
    139. 4
    140. 5
    141. 6
    142. 15.CString->string

    143. string str;
    144. CString temp;
    145. USES_CONVERSION;
    146. str=T2A(temp.GetBuffer(0));
    147. 1
    148. 2
    149. 3
    150. 4
    151. 16.string->CString

    152. CString cstr;
    153. string str;
    154. cstr=str.c_str();
    155. 1
    156. 2
    157. 3
    158. 17.char->string*

    159. 直接构造法:
    160. char cT1[20];
    161. string ste(cT1);//重新构造一个字符串
    162. 1
    163. 2
    164. 3
    165. 18.string->char*

    166. string ste;
    167. ch=(char*)ste.c_str();通过char*转换去掉const属性,注意ch只能为
    168. char*,不能为char[]
    169. 1
    170. 2
    171. 3
    172. 19.float(double)->string

    173. char cT1[20];
    174. _gcvt_s(cT1,20,110.58485678,6);//6为精确度
    175. string ste(cT1);
    176. 1
    177. 2
    178. 3
    179. 20.string->double

    180. string num="15.12054";
    181. double d=atof(num.c_str());
    复制代码
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    推荐膜材品牌上一条 /6 下一条

    进口膜材 国产膜材 pvdf膜材ptfe膜材ETFE膜材
    最好的膜结构公司 一级膜结构资质 膜结构一级资质
    膜结构设计-膜结构十大品牌-etfe设计-充气膜结构
    诺科膜结构
    遨都膜结构设计
    中国膜结构网
    中国空间膜结构

    QQ|申请友链|手机版|中国膜结构论坛