zoukankan      html  css  js  c++  java
  • MFC/C++/C中字符类型CString, int, string, char*之间的转换

    1. 1 CString,int,string,char*之间的转换 
    2. string 转 CString 
    3. CString.format("%s", string.c_str()); 
    4.  
    5. char 转 CString 
    6. CString.format("%s", char*); 
    7.  
    8. char 转 string 
    9. string s(char *); 
    10.  
    11. string 转 char * 
    12. char *p = string.c_str(); 
    13.  
    14.  //  CString转std::string
    15.  CString str = dlg.GetPathName();
    16.  setlocale(LC_ALL, "chs");
    17.  char *p = new char[256];
    18.  wcstombs( p, str, 256 );
    19.  m_fileName = p;
    20.  
    21. 1,string -> CString 
    22. CString.format("%s", string.c_str()); 
    23. 用c_str()确实比data()要好. 
    24. 2,char -> string 
    25. string s(char *); 
    26. 你的只能初始化,在不是初始化的地方最好还是用assign(). 
    27. 3,CString -> string 
    28. string s(CString.GetBuffer()); 
    29. GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间. 
    30.  
    31.  
    32. 《C++标准函数库》中说的 
    33. 有三个函数可以将字符串的内容转换为字符数组和C—string 
    34. 1.data(),返回没有”“的字符串数组 
    35. 2,c_str(),返回有”“的字符串数组 
    36. 3,copy() 
    37.  
    38.  
    39. CString互转int 
    40.  
    41. 将字符转换为整数,可以使用atoi、_atoi64或atol。 
    42. 而将数字转换为CString变量,可以使用CString的Format函数。如 
    43. CString s; 
    44. int i = 64; 
    45. s.Format("%d", i) 
    46. Format函数的功能很强,值得你研究一下。 
    47.  
    48. void CStrDlg::OnButton1() 
    49. // TODO: Add your control notification handler code here 
    50. CString 
    51. ss="1212.12"; 
    52. int temp=atoi(ss); 
    53. CString aa; 
    54. aa.Format("%d",temp); 
    55. AfxMessageBox("var is " + aa); 
    56.  
    57. sart.Format("%s",buf); 
    58.  
    59. CString互转char* 
    60.  
    61. ///char * TO cstring 
    62. CString strtest; 
    63. char * charpoint; 
    64. charpoint="give string a value"; 
    65. strtest=charpoint; 
    66.  
    67.  
    68. ///cstring TO char * 
    69. charpoint=strtest.GetBuffer(strtest.GetLength()); 
    70.  
    71. 标准C里没有string,char *==char []==string 
    72.  
    73. 可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。 
    74.  
    75.  
    76. CString转换 char[100] 
    77.  
    78. char a[100]; 
    79. CString str("aaaaaa"); 
    80. strncpy(a,(LPCTSTR)str,sizeof(a)); 
    81. 2 CString类型的转换成int 
    82. CString类型的转换成int 
    83. 将字符转换为整数,可以使用atoi、_atoi64或atol。 
    84.  
    85. //CString aaa = "16" ;
    86. //int int_chage = atoi((lpcstr)aaa) ; 
    87.  
    88.  
    89. 而将数字转换为CString变量,可以使用CString的Format函数。如 
    90. CString s; 
    91. int i = 64; 
    92. s.Format("%d", i) 
    93. Format函数的功能很强,值得你研究一下。 
    94. 如果是使用char数组,也可以使用sprintf函数。
    95.  
    96. //CString ss="1212.12"; 
    97. //int temp=atoi(ss); 
    98. //CString aa; 
    99. //aa.Format("%d",temp); 
    100.  
    101.  
    102. 数字->字符串除了用CString::Format,还有FormatV、sprintf和不需要借助于Afx的itoa 
    103.  
    104. char* 在装int 
    105. #include <stdlib.h>
    106.  
    107. int atoi(const char *nptr);
    108. long atol(const char *nptr);
    109. long long atoll(const char *nptr);
    110. long long atoq(const char *nptr); 
    111.  
    112. 4 CString,int,string,char*之间的转换 
    113. string aa("aaa");
    114. char *c=aa.c_str();
    115.  
    116.  
    117. cannot convert from 'const char *' to 'char *'
    118. const char *c=aa.c_str(); 
    119.  
    120. 5 CString,int,string,char*之间的转换 
    121. string.c_str()只能转换成const char *,
    122. 要转成char *这样写:
    123.  
    124. string mngName;
    125. char t[200]; memset(t,0,200); strcpy(t,mngName.c_str());
  • 相关阅读:
    前端知识之JavaScript内容(一)
    前端2css层叠样式表
    前端:html初识以及标签
    css
    python--re模块(正则表达式)
    python--xml模块
    关于导包问题
    前端浅了解
    试写仿优酷系统坑点
    sqlalchemy
  • 原文地址:https://www.cnblogs.com/ransn/p/8125094.html
Copyright © 2011-2022 走看看