1.使用string必須添加頭檔案
#include"string"
using namespace std;
2.使用cstring必須添加頭檔案(在非mfc工程中)
#include"afx.h"
注意:當出現#error : building mfc application with /md[d] (crt
dll version) requires mfc shared dll version. please #define
_afxdll or do not use /md[d]錯誤時,改工程設定:
project|properties|configuration properties|general|use of mfc :
use mfc in a shared dll(項目-〉屬性-〉use of mfc 改成use mfc in a
share dll)
3.wchar_t
wchar_t是c++的字元資料類型,char是8位字元類型,最多隻能包含256種
字元,許多外文字元集所含的字元數目超過256個,字元型無法表示
wchar_t資料類型為16位,所能表示的字元數遠超char型。
4.achar類型(此類型是autodesk公司在adachar.h 頭檔案中定義的-
typedef wchar_t achar;)
#include "adachar.h"
5.uses_conversion在atlconv.h頭檔案中定義
#include "atlconv.h "
6.string->achar*
string str="string";
achar* ach;
uses_conversion;
ach=(achar*)a2ct(str.c_str());
7.achar*->string
string temp=w2a(ach);
8.(wchar_t)achar*->char*
char * ch;
ch=t2a(ach);
9.char*->achar*
achar* ach1;
方法一:
ach1=a2w(ch);
方法二:
size_t convertedchars=0;//記錄傳回實際轉換字元串的長度
mbstowcs_s(&convertedchars,ach1,10,ch,_truncate);//10為ch的最大長
度,随着需要而改變
10.int->string
string str;
int nnumber=10001;
char ct[10];//把int轉化為string
_itoa_s(nnumber,ct,10);
str=ct;或string str(ct);
11.string->int
12.cstring->char*
方法一:
char* ch;
cstring temp;
ch=t2a(temp.getbuffer(0));
方法二:
使用強制轉換
cstring thestring( "this is a test" );
lptstr lpsz =(lptstr)(lpctstr)thestring;
13.char*->cstring
可以直接指派
cstring cstr;
cstr=ch;
通過使用format函數
char charray[] = "this is a test";
mbcs下(即沒定義unicode時):
cstr.format(_t("%s"), charray);
定義unicode時:
cstr.format(_t("%s"), a2w(charray));
14.char*->int
int n=atoi(ch);
15.int->char*
int n=45;
char nch[10];
itoa(n,nch,16);//16為進制,可以取2,8,10,16等
也可以采用如下形式:ch=itoa(n,nch,16);
vs2005環境用:_itoa_s(n,nch,2);
16.cstring->string
str=t2a(temp.getbuffer(0));
17.string->cstring
cstr=str.c_str();
18.char*->string
直接構造法:
char ct1[20];
string ste(ct1);//重新構造一個字元串
19.string->char*
string ste;
ch=(char*)ste.c_str();通過char*轉換去掉const屬性,注意ch隻能為
char*,不能為char[]
20.float(double)->string
_gcvt_s(ct1,20,110.58485678,6);//6為精确度
string ste(ct1);
21.string->double
string num="15.12054";
double d=atof(num.c_str());