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