cstring与string区别(C++中的字符串操作<cstring>和<string>的区别)
本文目录
- C++中的字符串操作
和 的区别 - string和cstring的区别
- C++的string和MFC的CString的区别有哪些
- CString与string,char*的区别和转换
- cstring和string的区别
- String CSting区别是什么
C++中的字符串操作和的区别
cstring是string.h的c++版本,string.h是c的标准库。cstring显然是C风格字符串,是以\0结尾的字符串,提供了几个相关的字符串操作,必然strcpy strcat等。string则是C++的库,提供了与标准模板库相似的操作。就使用上来说,string要比cstring好用的多,主要是不必处理\0的问题。所以,建议使用《string》这个库。
string和cstring的区别
帮你找来的标准答案,望采纳
CString和string的转化
stringstr="ksarea";CStringcstr(str.c_str());//或者CString cstr(str.data());初始化时才行cstr=str.c_str();或者cstr=str.data();str=cstr.GetBuffer(0); //CString -》 stringcstr.format("%s", str.c_str()); //string-》CStringcstr.format("%s", str.data()); //string-》CStringstr = LPCSTR(cstr); //CString-》string/*c_str()和data()区别是:前者返回带’/0’的字符串,后者则返回不带’/0’的字符串*/
2.CString和int的转换
inti=123;CStringstr;str.format("%d",i);//int-》CString 其他的基本类型转化类似i=atoi(str);//CString-》int 还有(atof,atol)
3.char*和CString的转换
CStringcstr="ksarea";char* ptemp=cstr.getbuffer(0);char* str;strcpy(str,ptemp);//CString-》char*cstr.releasebuffer(-1);char*str="lovesha";CStringcstr=str;//char*-》CString string类型不能直接赋值给CString
至于int与float、string与char*之间的转化可以使用强制转化,或者标准库函数进行。对于CString与其他类型的转化方法很多,但其实都殊途同归,朝着一个方向即将类型首先转化为char*类型,因为char*是不同类型之间的桥梁。得到char*类型,转化为其他类型就非常容易了。
C++的string和MFC的CString的区别有哪些
Cstring应用在MFC。MFC读取Text出来的格式Cstring,在MFC中有一些接口是Cstring类型,标准C++里面接口string,两者要进行转换。个人觉得功能都差不多,参数有不同罢了
CString与string,char*的区别和转换
CString,是ATL/MFC共享的,string是C++标准库的相同点:(1)用他们都可以取代对char*的使用。(2)都封装了有丰富的字符串操作接口。(3)他们都是C++的类库。(4)他们都使用了模板的技术。以string的使用为例,不能有如下用法:string*pstr=NULL;//定义一个指向字符串的指针pstr-》append("Helloworld.");//在该字符串的末尾粘接上另一个字符。这样做编译器不会有任何警告和错误,但是运行的时候就会有异常。原因是没有理解string是一个类,而在定义类的对象的时候是需要调用其构造函数的。上面既没有调用string的构造函数,而且还把指针赋值为NULL,很明显调用该类的对象的接口的时候会出错。但是编译器却发现不了这个问题的。正确的方法是如下:/*这里必须要用c++的宏new,而不能用c中的malloc,原因是new不但会分配一块内存,*//*还执行了类的构造函数。当然,string类的实例化还可以通过已有的某个string对象进行,请另查阅*/string*pstr=newstring("Helloworld.");pstr-》append("Helloworld.");coutc_str();//并没有通过malloc或者new为指针ptmp分配内存,只是把string中的数据指针赋给了ptmp而已coutcstris:"length(),0);//如果没有上面分配内存空间,这个语句在运行时就会报段错误。cout《《"char*p:copyfromstringis:"《
cstring和string的区别
你可能弄混的不是两个头文件,而是三个:《string》《string.h》《cstring》《string》是C++特化的字符容器,内含string类。《string.h》是标准C提供的字符处理函数集。面向char *.《cstring》是C++为兼容C提供的《string.h》的C++版本,里面的主要改进应该是有:将一些隐藏变量编入命名空间;修正一些C++编译器认为Bug的代码。其余没发现很多改变。
String CSting区别是什么
String 是标准模板库里的结构体,重载了运算符= 等以及很多对字符串的操作函数 CString 是MFC类库里的类,无基类,也重载了运算符= 等以及很多对字符串的操作函数 相同点:(1)用他们都可以取代对char*的使用。(2)都封装了有丰富的字符串操作接口。(3)他们都是C++的类库。(4)他们都使用了模板的技术。 不同之处:(1)CString 类是微软的visual c++提供的MFC里面的一个类,所以只有支持MFC的工程才可以使用。如在linux上的工程就不能用CString了,只能用标准C++中的 string类了。另外,因为string类是在c++标准库中,所以它被封装在了std命名空间中,使用之前需要声明using namespace std;而CString类并不在std命名空间中,因为它不是c++的标准库,只是微软的一个封装库。这点看来用string类的程序的移植性更好。(2)string类既是一个标准c++的类库,同时也是STL(Standard Template Library,标准模版库)中的类库,所以支持Iterator操作。(3)CString类和string类提供的方法接口并不完全相同,所以不要糊里糊涂的认为某个类中怎么没有另外一个类中的方法啊。(4)他们和char*之间的转换方法也不一样。
本文相关文章:
cstring与string区别(String CSting区别是什么)
2024年7月1日 17:46
cstring与string区别(CString与string,char*的区别和转换)
2024年5月17日 17:03
更多文章:
except的用法总结(英语中关于expect besides expect for等表示除了的用法)
2024年7月2日 05:50
为什么编程语言不能是中文(计算机的汇编语言为什么没有中文的版本)
2024年8月11日 01:50
excel函数公式设置颜色(excel怎么用IF函数,改变字体的颜色)
2024年7月16日 17:25
spring festival初一作文(我的春节英语作文 初一水平的)
2024年6月6日 02:28
caution的形容词(caution 和 careful 和 attention的区别和用法是什么)
2024年7月1日 12:15
return to normal(英语Normal font怎么翻译)
2024年7月22日 20:28
c语言课程设计答辩问题(课程设计要答辩 C语言没怎么学 可以简单讲解一下这个程序么 帮忙加一下注释)
2024年8月22日 19:15
dos系统怎么进入(在windows中进入ms-dos有几种方法)
2024年7月14日 16:41
hamburger是什么意思中文(hamburger翻译中文是什么意思)
2024年6月30日 22:28
正则截取部分字符串(python 正则表达式如何截取字符串中间的内容)
2024年10月18日 03:50
大学生自学网app下载(大学生在使用电脑的同时,应该学会哪些对以后工作有用的软件或者技能呢)
2024年5月17日 18:19
matlab编程与工程应用第三版课后答案(MATLAB与系统仿真 试题)
2024年4月21日 13:05