- 1 CString , int , string , char *之间的转换
- string 转 CString
- CString . format ( " %s " , string . c_str ()) ;
- char 转 CString
- CString . format ( " %s " , char * ) ;
- char 转 string
- string s ( char * ) ;
- string 转 char *
- char * p = string . c_str () ;
- // CString转std::string
- CString str = dlg . GetPathName () ;
- setlocale ( LC_ALL , " chs " ) ;
- char * p = new char [ 256 ] ;
- wcstombs ( p , str , 256 ) ;
- m_fileName = p ;
- 1 , string -> CString
- CString . format ( " %s " , string . c_str ()) ;
- 用 c_str () 确实比 data () 要好.
- 2 , char -> string
- string s ( char * ) ;
- 你的只能初始化,在不是初始化的地方最好还是用 assign () .
- 3 , CString -> string
- string s ( CString . GetBuffer ()) ;
- GetBuffer () 后一定要 ReleaseBuffer () ,否则就没有释放缓冲区所占的空间.
- 《 C ++标准函数库》中说的
- 有三个函数可以将字符串的内容转换为字符数组和 C — string
- 1 . data () ,返回没有”/ 0 “的字符串数组
- 2 , c_str () ,返回有”/ 0 “的字符串数组
- 3 , copy ()
- CString 互 转 int
- 将字符转换为整数,可以使用 atoi 、 _atoi64 或 atol 。
- 而将数字转换为 CString 变量,可以使用 CString 的 Format 函数。如
- CString s ;
- int i = 64 ;
- s . Format ( " %d " , i )
- Format 函 数的功能很强,值得你研究一下。
- void CStrDlg :: OnButton1 ()
- {
- // TODO: Add your control notification handler code here
- CString
- ss = " 1212.12 " ;
- int temp = atoi ( ss ) ;
- CString aa ;
- aa . Format ( " %d " , temp ) ;
- AfxMessageBox ( " var is " + aa ) ;
- }
- sart . Format ( " %s " , buf ) ;
- CString 互 转 char *
- ///char * TO cstring
- CString strtest ;
- char * charpoint ;
- charpoint = " give string a value " ;
- strtest = charpoint ;
- ///cstring TO char *
- charpoint = strtest . GetBuffer ( strtest . GetLength ()) ;
- 标准 C 里没有 string , char *== char [] == string
- 可以用 CString . Format ( " %s " , char * ) 这个方法来将 char *转成 CString 。要把 CString 转成 char *,用操作符( LPCSTR ) CString 就可以了。
- CString 转 换 char [ 100 ]
- char a [ 100 ] ;
- CString str ( " aaaaaa " ) ;
- strncpy ( a , ( LPCTSTR ) str , sizeof ( a )) ;
- 2 CString 类型的转换成 int
- CString 类 型的转换成 int
- 将字符转换为整数,可以使用 atoi 、 _atoi64 或 atol 。
- //CString aaa = "16" ;
- //int int_chage = atoi((lpcstr)aaa) ;
- 而将数字转换为 CString 变量,可以使用 CString 的 Format 函数。如
- CString s ;
- int i = 64 ;
- s . Format ( " %d " , i )
- Format 函 数的功能很强,值得你研究一下。
- 如果是使用 char 数组,也可以使用 sprintf 函数。
- //CString ss="1212.12";
- //int temp=atoi(ss);
- //CString aa;
- //aa.Format("%d",temp);
- 数字->字符串除了用 CString :: Format ,还有 FormatV 、 sprintf 和不需要借助于 Afx 的 itoa
- 3 char * 在装 int
- #include < stdlib.h >
- int atoi ( const char * nptr ) ;
- long atol ( const char * nptr ) ;
- long long atoll ( const char * nptr ) ;
- long long atoq ( const char * nptr ) ;
- 4 CString , int , string , char *之间的转换
- string aa ( " aaa " ) ;
- char * c = aa . c_str () ;
- cannot convert from ' const char *' to ' char *'
- const char * c = aa . c_str () ;
- 5 CString , int , string , char *之间的转换
- string . c_str () 只能转换成 const char *,
- 要转成 char *这样写:
- string mngName ;
- char t [ 200 ] ; memset ( t , 0 , 200 ) ; strcpy ( t , mngName . c_str ()) ;
MFC/C++/C中字符类型CString, int, string, char*之间的转换
最新推荐文章于 2024-04-06 00:00:00 发布