cstring与string区别(C++中的字符串操作<cstring>和<string>的区别)

2024-07-19 14:42:45 9

cstring与string区别(C++中的字符串操作<cstring>和<string>的区别)

本文目录

C++中的字符串操作的区别

cstring是string.h的c++版本,string.h是c的标准库。cstring显然是C风格字符串,是以\0结尾的字符串,提供了几个相关的字符串操作,必然strcpy strcat等。string则是C++的库,提供了与标准模板库相似的操作。就使用上来说,string要比cstring好用的多,主要是不必处理\0的问题。所以,建议使用《string》这个库。

string和cstring的区别

帮你找来的标准答案,望采纳

  1. 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区别(C++中的字符串操作<cstring>和<string>的区别)

本文编辑:admin

本文相关文章:


cstring与string区别(String CSting区别是什么)

cstring与string区别(String CSting区别是什么)

本文目录String CSting区别是什么C++中的字符串操作和的区别string和cstring的区别C++的string和MFC的CString的区别有哪些cstring和string的区别CString与string,char*的区

2024年7月1日 17:46

cstring与string区别(CString与string,char*的区别和转换)

cstring与string区别(CString与string,char*的区别和转换)

本文目录CString与string,char*的区别和转换string和cstring的区别cstring和string的区别C++的string和MFC的CString的区别有哪些String CSting区别是什么C++中的字符串操作

2024年5月17日 17:03

更多文章:


two的中文?Two怎么读,什么意思

two的中文?Two怎么读,什么意思

本文目录two的中文Two怎么读,什么意思twos是什么意思oneonestwo没有twostwo的中文two的意思是两个,两个的,句中作为名词、形容词和代词使用。一、词汇分析two英 n. 两个adj. 两个的num. 二二、短语1、Bi

2024年7月24日 12:39

habitual(habit形容词)

habitual(habit形容词)

其实habitual的问题并不复杂,但是又很多的朋友都不太了解habit形容词,因此呢,今天小编就来为大家分享habitual的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录habit形容词Habitua什么意思

2024年6月28日 11:30

except的用法总结(英语中关于expect besides expect for等表示除了的用法)

except的用法总结(英语中关于expect besides expect for等表示除了的用法)

大家好,今天小编来为大家解答以下的问题,关于except的用法总结,英语中关于expect besides expect for等表示除了的用法这个很多人还不知道,现在让我们一起来看看吧!本文目录英语中关于expect besides ex

2024年7月2日 05:50

为什么编程语言不能是中文(计算机的汇编语言为什么没有中文的版本)

为什么编程语言不能是中文(计算机的汇编语言为什么没有中文的版本)

“为什么编程语言不能是中文”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看为什么编程语言不能是中文(计算机的汇编语言为什么没有中文的版本)!本文目录计算机的汇编语言为什么没有中文的版本为什么程序员都不用中文来编程呢英语不好的

2024年8月11日 01:50

explore名词形式(Explore的名词)

explore名词形式(Explore的名词)

大家好,关于explore名词形式很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于Explore的名词的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录E

2024年7月24日 11:00

excel函数公式设置颜色(excel怎么用IF函数,改变字体的颜色)

excel函数公式设置颜色(excel怎么用IF函数,改变字体的颜色)

大家好,如果您还对excel函数公式设置颜色不太了解,没有关系,今天就由本站为大家分享excel函数公式设置颜色的知识,包括excel怎么用IF函数,改变字体的颜色的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录e

2024年7月16日 17:25

spring festival初一作文(我的春节英语作文 初一水平的)

spring festival初一作文(我的春节英语作文 初一水平的)

本文目录我的春节英语作文 初一水平的七年级英语作文: My Spring Festival Plans我的春节英语作文 初一水平的MySpringFestivalTheSpringFestivalisatraditionalChineseh

2024年6月6日 02:28

caution的形容词(caution 和 careful 和 attention的区别和用法是什么)

caution的形容词(caution 和 careful 和 attention的区别和用法是什么)

本文目录caution 和 careful 和 attention的区别和用法是什么caution什么意思be后面的caution用什么形式caution和warning有什麽区别caution 和 cautious是同根词吗caution

2024年7月1日 12:15

plc入门视频教程(有没有懂plc的,新手该怎么学习)

plc入门视频教程(有没有懂plc的,新手该怎么学习)

本文目录有没有懂plc的,新手该怎么学习plc学习的入门梯形图程序都有哪些致PLC初学者的入门一课,七大误区如何解决有没有懂plc的,新手该怎么学习1:准备的东西1)要选好PLC机型,一般选择大品牌的公司产品,操作规范简易。2)准备相应的软

2024年6月28日 17:19

共创世界编程网站(共创世界如何导入图片)

共创世界编程网站(共创世界如何导入图片)

大家好,关于共创世界编程网站很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于共创世界如何导入图片的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录共创世界

2024年9月8日 06:50

return to normal(英语Normal font怎么翻译)

return to normal(英语Normal font怎么翻译)

本文目录英语Normal font怎么翻译normal是什么意思Return to normal 中的normal 不是名词吗 为什么老师说是特殊用法 是形容词general与normal的区别return tonormal什么意思retu

2024年7月22日 20:28

后印象派三杰(梵高是不是意大利文艺复兴的三大先驱)

后印象派三杰(梵高是不是意大利文艺复兴的三大先驱)

本文目录梵高是不是意大利文艺复兴的三大先驱文艺复兴 美术三杰 荷兰的伦勃朗 西班牙的维拉斯凯斯 印象主义 后印象主义 莫奈文艺复兴中,达芬奇、米开朗琪罗和谁并称美术三杰象征主义的主导性人物:高更自画像系列文艺复兴美术三杰指的是达芬奇米开朗基

2024年4月30日 02:50

c语言课程设计答辩问题(课程设计要答辩 C语言没怎么学 可以简单讲解一下这个程序么 帮忙加一下注释)

c语言课程设计答辩问题(课程设计要答辩 C语言没怎么学 可以简单讲解一下这个程序么 帮忙加一下注释)

本篇文章给大家谈谈c语言课程设计答辩问题,以及课程设计要答辩 C语言没怎么学 可以简单讲解一下这个程序么 帮忙加一下注释对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,

2024年8月22日 19:15

svg动态无功补偿装置的作用(SVG无功补偿的功能有哪些)

svg动态无功补偿装置的作用(SVG无功补偿的功能有哪些)

本文目录SVG无功补偿的功能有哪些什么是SVG型无功补偿光伏电站现在都用SVG进行无功补偿吗SVG、SVC、FC这三种无功补偿装置的区别是什么SVG与SVC无功补偿原理区别电力系统中的SVG和FC都是起什么作用的电力系统中SVG是什么变电站

2023年7月17日 05:20

dos系统怎么进入(在windows中进入ms-dos有几种方法)

dos系统怎么进入(在windows中进入ms-dos有几种方法)

大家好,dos系统怎么进入相信很多的网友都不是很明白,包括在windows中进入ms-dos有几种方法也是一样,不过没有关系,接下来就来为大家分享关于dos系统怎么进入和在windows中进入ms-dos有几种方法的一些知识点,大家可以关注

2024年7月14日 16:41

hamburger是什么意思中文(hamburger翻译中文是什么意思)

hamburger是什么意思中文(hamburger翻译中文是什么意思)

本文目录hamburger翻译中文是什么意思hamburger什么意思中文翻译汉堡包英文是什么hamburger的中文意思hamburger中文翻译hamburger的中文是什么hamburgur是什么意思中文翻译是什么意思中文汉堡包用英语

2024年6月30日 22:28

右移运算符的介绍?C语言中移位运算

右移运算符的介绍?C语言中移位运算

本文目录右移运算符的介绍C语言中移位运算Java中右移运算C程序中,左移“>” 的具体用法是什么右移运算符的作用C的右移运算符什么用右移运算符的基本信息C语言>>右移运算右移运算符的介绍右移运算符,移位运算符的一种:程序设计中,位操作运算符

2024年7月4日 00:22

正则截取部分字符串(python 正则表达式如何截取字符串中间的内容)

正则截取部分字符串(python 正则表达式如何截取字符串中间的内容)

大家好,如果您还对正则截取部分字符串不太了解,没有关系,今天就由本站为大家分享正则截取部分字符串的知识,包括python 正则表达式如何截取字符串中间的内容的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录pytho

2024年10月18日 03:50

大学生自学网app下载(大学生在使用电脑的同时,应该学会哪些对以后工作有用的软件或者技能呢)

大学生自学网app下载(大学生在使用电脑的同时,应该学会哪些对以后工作有用的软件或者技能呢)

本文目录大学生在使用电脑的同时,应该学会哪些对以后工作有用的软件或者技能呢除了Office,还有哪些值得大学生学习的软件大学生自学刷题的软件有什么推荐吗大学生在使用电脑的同时,应该学会哪些对以后工作有用的软件或者技能呢由于不知道你的专业,所

2024年5月17日 18:19

matlab编程与工程应用第三版课后答案(MATLAB与系统仿真 试题)

matlab编程与工程应用第三版课后答案(MATLAB与系统仿真 试题)

本文目录MATLAB与系统仿真 试题求两道matlab编程题Matlab问题求信号与系统基础--应用WEB和MATLAB_第三版_Edward答案,急MATLAB编程解决运输问题图是我在matlab编程时遇到的问题 请问最后答案为甚是1 还

2024年4月21日 13:05

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2342
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1735
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1168
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1164
标签列表

热门搜索