• CString char* and string 转帖


    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( pstr256 );
    19.  m_fileName = p;
    20.  
    21. 1string -> CString 
    22. CString.format("%s"string.c_str())
    23. c_str()确实比data()要好. 
    24. 2char -> string 
    25. string s(char *)
    26. 你的只能初始化,在不是初始化的地方最好还是用assign()
    27. 3,CString -> string 
    28. string s(CString.GetBuffer())
    29. GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间. 
    30.  
    31.  
    32. C++标准函数库》中说的 
    33. 有三个函数可以将字符串的内容转换为字符数组和Cstring 
    34. 1.data(),返回没有”\0“的字符串数组 
    35. 2,c_str(),返回有”\0“的字符串数组 
    36. 3copy() 
    37.  
    38.  
    39. CString互转int 
    40.  
    41. 将字符转换为整数,可以使用atoi_atoi64atol。 
    42. 而将数字转换为CString变量,可以使用CStringFormat函数。如 
    43. CString s
    44. int i = 64
    45. s.Format("%d"i) 
    46. Format函数的功能很强,值得你研究一下。 
    47.  
    48. void CStrDlg::OnButton1() 
    49. { 
    50. // TODO: Add your control notification handler code here 
    51. CString 
    52. ss="1212.12"
    53. int temp=atoi(ss)
    54. CString aa
    55. aa.Format("%d",temp)
    56. AfxMessageBox("var is " + aa)
    57. } 
    58.  
    59. sart.Format("%s",buf)
    60.  
    61. CString互转char
    62.  
    63. ///char * TO cstring 
    64. CString strtest
    65. char * charpoint
    66. charpoint="give string a value"
    67. strtest=charpoint
    68.  
    69.  
    70. ///cstring TO char * 
    71. charpoint=strtest.GetBuffer(strtest.GetLength())
    72.  
    73. 标准C里没有string,char *==char []==string 
    74.  
    75. 可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTRCString就可以了。 
    76.  
    77.  
    78. CString转换 char[100] 
    79.  
    80. char a[100]
    81. CString str("aaaaaa")
    82. strncpy(a,(LPCTSTR)str,sizeof(a))
    83. 2 CString类型的转换成int 
    84. CString类型的转换成int 
    85. 将字符转换为整数,可以使用atoi_atoi64atol。 
    86.  
    87. //CString aaa = "16" ;
    88. //int int_chage = atoi((lpcstr)aaa) ; 
    89.  
    90.  
    91. 而将数字转换为CString变量,可以使用CStringFormat函数。如 
    92. CString s
    93. int i = 64
    94. s.Format("%d"i) 
    95. Format函数的功能很强,值得你研究一下。 
    96. 如果是使用char数组,也可以使用sprintf函数。
    97.  
    98. //CString ss="1212.12"; 
    99. //int temp=atoi(ss); 
    100. //CString aa; 
    101. //aa.Format("%d",temp); 
    102.  
    103.  
    104. 数字->字符串除了用CString::Format,还有FormatVsprintf和不需要借助于Afxitoa 
    105.  
    106. 3 char* 在装int 
    107. #include <stdlib.h>
    108.  
    109. int atoi(const char *nptr);
    110. long atol(const char *nptr);
    111. long long atoll(const char *nptr);
    112. long long atoq(const char *nptr)
    113.  
    114. 4 CString,int,string,char*之间的转换 
    115. string aa("aaa");
    116. char *c=aa.c_str();
    117.  
    118.  
    119. cannot convert from 'const char *' to 'char *'
    120. const char *c=aa.c_str()
    121.  
    122. 5 CString,int,string,char*之间的转换 
    123. string.c_str()只能转换成const char *,
    124. 要转成char *这样写:
    125.  
    126. string mngName
    127. char t[200]memset(t,0,200)strcpy(t,mngName.c_str());
  • 相关阅读:
    2019 ECfianl
    Codeforces Round #610 (Div. 2)
    IOS设计模式之三:MVC模式
    MVC3快速搭建Web应用(二)
    IOS设计模式之四:观察者模式
    MVC3快速搭建Web应用(一)
    Three20 NetWork
    IOS设计模式之一:单例模式
    IOS设计模式之二:Delegate模式
    写博客的意义
  • 原文地址:https://www.cnblogs.com/xianqingzh/p/1649722.html
Copyright © 2020-2023  润新知