您的位置:首页 > 其它

CString与char * ,string的互相转换

2015-12-24 10:40 531 查看
CString头文件#include <afx.h>

string头文件#include <string.h>

1、CString转char
*

CString cstr;

char *p =(LPSTR)(LPCTSTR)cstr;

2、string转 CString

CString.format(”%s”, string.c_str());

用c_str()确实比data()要好.

3、char转 CString

CString.format(”%s”, char*);

4、char转 string

string s(char *);

只能初始化,在不是初始化的地方最好还是用assign().

5、string转 char
*

char *p = string.c_str();

6、CString转 string

string s(CString.GetBuffer());

GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

―――――――――――――――――――――

《C++标准函数库》中说的

有三个函数可以将字符串的内容转换为字符数组和C―string

1、data(),返回没有”/0“的字符串数组

2、c_str(),返回有”/0“的字符串数组

3、copy()

―――――――――――――――――――――

CString与int、char*、char[100]之间的转换--

1、CString互转int

(1)将字符转换为整数,可以使用atoi、_atoi64或atol。

(2)将数字转换为CString变量,可以使用CString的Format函数。如

CString s;

int i = 64;

s.Format(”%d”, i)

Format函数的功能很强,值得你研究一下。

voidCStrDlg::OnButton1()

{

// TODO: Add your control notificationhandler code here

CString

ss=”1212.12″;

int temp=atoi(ss);

CString aa;

aa.Format(”%d”,temp);

AfxMessageBox(”var is ” + aa);

}

sart.Format(”%s”,buf);

2、CString互转char*

CString strtest;

char * charpoint;

///char * TO cstring

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就可以了。

3、CString转换 char[100]

///char[100] TOcstring

char a[100];

CString str(”aaaaaa”);

///cstring TO char[100]

strncpy(a,(LPCTSTR)str,sizeof(a));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: