#include <string>//使用C++标准库的string类时
using namespace std;//同上
#include <sstream>
#include <iostream>
#include <stdlib.h>//要将string类和int类型直接转换最好有这些包含,
//因为自己写一个转换函数比较方便,函数定义参考如下:
string getstring(const int n)
{
std::stringstream newstr;
newstr<<n;
return newstr.str();
}
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转string
string s(CString.GetBuffer());
1,string->CString
CString.format("%s",string.c_str());
用c_str()确实比data()要好
2char->string
string(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,char*,char[100]之间的转换
CString与int,char*,char[100]之间的转换
CString互转int
将字符转换为整数,可以使用atoi、_atoi64或atol
而将数字转换为CString变量,可以使用CString的Format函数。
如:
CString s;
int i=64;
s.Format("%d",i);
Format函数的功能很强,值得研究
void CStrDlg::OnButton1()
{
CString ss="1212.12"
int temp=atoi(ss);
CString aa;
aa.Format("%d",temp);
AfxMessageBox("var is"+aa);
}
sart.Format("%s",buf);
CString互转char*
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。用操作符(LPCSTR)CString就可以了。
CString转换char[100]
char a[100];
CString str("aaaaa");
strncpy(a,(LPcSTR)str,sizeof(a));
}