


C/C++培训
达内IT学院
400-996-5531

C++中,字符串有好几种类型:
char*
char[]
std::string
CString
他们都能代表一个字符串,也时常需要转换
下面先给出一些类型需要包含的头文件
char* char[] 不需要引入头文件
std::string #include <string>
CString #include <afx.h> //注:MFC类,不能和windows.h同时使用
*同时要注意是否引入了MFC类
如果没有使用MFC类,程序无法生成
下面是几种类型的转化:
char* To ...
char* -> char[]
char* str="...";
char sz[256];
strcpy(sz,str);
char*->std::string
char* str="...";
string s=str;
char*->CString
char* sz="";
CString str=sz;
char[] To ...
char[]->char*
char str[]="...";
char* pch=str;
char[]->std::string
char str[]="...";
std::string s=str;
char[]->CString
char str[]="..";
CString s=str;
std::string To ...
std::string ->char*
std::string str="...";
char* sz=(char*)str.c_str();
std::string ->char[]
std::string str="...";
char sz[256];
strcpy(sz,(char*)str.c_str());
std::string->CString
std::string str="...";
CString s=(char*)str.c_str();
CString To ...
CString ->char*
CString str="...";
char* sz=new char[256];
strcpy(sz,str);
CString ->char[]
CString str="...";
char sz[256];
strcpy(sz,str);
CString ->std::string
CString str="...";
std::string s=str;
我们发现,这些类型之间的转化方法有所不同,有的可以直接转化,而有的需要函数操作
通过以上代码,我们可以总结出以下几点:
数组名可以作为字符串的地址值,可以直接传递给指针,而指针指向的就是这个字符数组(原字符串),二者共用同一位置的内存
std::string和CString类可以直接赋一个char*值
std::string的c_str()函数可以实现string->const char*的转化,而一种类型的指针可以强制转换为任何类型的指针,而const char和char均为一个字节,二者的指针可以强制转化
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有