cstring转为string vc_VC编程CString、int、string、char*相互转换

字符串处理是VC编程非常重要的一部分内容,在实际项目中,字符串之间的类型转换比较繁杂,本文搜集了目前使用最多的字符串与字符串、字符串与数值类型之间的转换方法,主要包含了CString、int、string、char*相互转换,总结归纳如下:

一、字符类型之间相互转换:

1.string 转 CString

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

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

2.char* 转 CString

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

3.char* 转 string

string s(char *);

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

4.string 转 char *

char *p = string.c_str();

5.CString 转 string

string s(CString.GetBuffer());

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

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

7.CString转换 char[100]

char a[100];

CString str("aaaaaa");

strncpy(a,(LPCTSTR)str,sizeof(a));

8.string转换成char*

string.c_str()只能转换成const char *,

要转成char *这样写:

string mngName;

char t[200];

memset(t,0,200);

strcpy(t,mngName.c_str());

二、字符类型与数值类型转换:

多节字符模式下,将字符类型char*转换为数值类型,可以使用atoi、_atoi64、atof、atol,在宽字符模式下,将字符类型wchar_t*转换为数值类型,可以使用_wtoi,_wtoi64、_wtof、_wtol,下述不做特别说明,均指的是在多节模式下工作,需要在宽字符(Unicode)模式下进行转换,请参考http://msdn.microsoft.com/en-US/library/ts4a5f28%28v=vs.80%29.aspx

1.将数值类型转换为CString类型:

可以使用CString的Format函数。如 :

ct2 = clock();

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);

}

如果是使用char数组,也可以使用sprintf函数。

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

2.CString、string类型的转换成数值类型

将字符类型转换成数值类型的API函数:atoi、_atoi64或atol等,均值提供对char*的转换,所以对于CString,可以先通过CString::GetBuffer函数返回对应的char*或者强制转换成LPCSTR,string类型可以通过函数c_str()间接地完成对应数值类型的转换,下面着重讨论char*转换成数值类型的方法。

<12>

【发表评论0条 】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值