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