string库和cstring库(cstring和string的区别)

本文目录
- cstring和string的区别
- c++ string类的基本功能是什么和头文件是
的库函数有什么区别还有 - CString与string有什么区别
- C++中的字符串操作
和 的区别 - Cstring 和string的区别
- string与cstring有什么区别
- string和cstring的区别
cstring和string的区别
CString/string 区别及其转化
利用MFC进行编程时,我们从对话框中利用GetWindowText得到的字符串是CString类型,CString是属于MFC的类。而一些标准C/C++库函数是不能直接对CString类型进行操作的,所以我们经常遇到将CString类型转化char*等等其他数据类型的情况。这里总结备忘于此!
首先要明确,标准C中是不存在string类型的,string是标准C++扩充字符串操作的一个类。但是我们知道标准C中有string.h这个头文件,这里要区分清楚,此string非彼string。string.h这个头文件中定义了一些我们经常用到的操作字符串的函数,如:strcpy、strcat、strcmp等等,但是这些函数的操作对象都是char*指向的字符串。
而C++的string类操作对象是string类型字符串,该类重装了一些运算符,添加了一些字符串操作成员函数,使得操作字符串更加方便。有的时候我们要将string串和char*串配合使用,所以也会涉及到这两个类型的转化问题。
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 -》 string
cstr.format("%s", str.c_str()); //string-》CString
cstr.format("%s", str.data()); //string-》CString
str = 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类的基本功能是什么和头文件是的库函数有什么区别还有
C++ string类对应的头文件好像是《string》没有.h,其实你看过源码就知道了,它只是申请一块内存,把string变量的值放在这里,如果超过长度,重新拷贝放入新地址,你使用的时候,理解为一串字符串就好了,使用中注意char*与string的转换。
cstring是windows基于mfc开发的,从安全性上更加安全,只是不通用。《string.h》为c语言的头文件
CString与string有什么区别
string 是 语言的东西 是c++语言的\x0d\x0aCString 是VC++ IDE内嵌的,是MFC的\x0d\x0a不是一个概念\x0d\x0aCString 离开VC++不能用\x0d\x0astring 在任何支持C++的IDE中都能用
C++中的字符串操作和的区别
cstring是string.h的c++版本,string.h是c的标准库。cstring显然是C风格字符串,是以\0结尾的字符串,提供了几个相关的字符串操作,必然strcpy strcat等。
string则是C++的库,提供了与标准模板库相似的操作。
就使用上来说,string要比cstring好用的多,主要是不必处理\0的问题。所以,建议使用《string》这个库。
Cstring 和string的区别
(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*之间的转黄方法也不一样。
string与cstring有什么区别
《string》是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string《char》的typedef),用于字符串操作。
《cstring》是C标准库头文件《string.h》的C++标准库版本,包含了C风格字符串(NUL即’\0’结尾字符串)相关的一些类型和函数的声明,例如strcmp、strchr、strstr等。《cstring》和《string.h》的最大区别在于,其中声明的名称都是位于std命名空间中的,而不是后者的全局命名空间。
====
string和cstring的区别
CString 是MFC或者ATL中的实现,
string是C++标准库中的实现
string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;
CString(typedef CStringT《TCHAR, StrTraitMFC《TCHAR》》 CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),TCHAR(ANSI与unicode均可);
char*为C编程中最常用的字符串指针,一般以’\0’为结束标志;
在MFC、ATL中使用字符串尽量使用CString,毕竟都是微软的孩子,各方面都比其它更有优势,而在非微软平台上或对移植性要求较高的场合推荐使用string,标准模板库提供了那么强大的泛型算法,没必要再自己去造车轮。

更多文章:
excel滚动条怎么调出来(怎么让excel表格显示出滚动条)
2025年11月4日 02:30
电脑网速慢怎么解决 教你优化电脑网络速度的方法?网络优化是怎么回事
2025年11月10日 12:15
take for granted(take for granted是什么意思)
2025年10月21日 02:45
虚拟机安装hadoop步骤(安装hadoop 中vi命令怎么用)
2025年10月28日 10:45
continue语句在循环体中的作用(c语言中continue语句的作用)
2025年9月3日 16:45
wsdl url is not valid(php如何处理wsdl)
2026年3月9日 20:30
字符串长度可以用lenngtn吗js(js中 我在一个函数中定义一个变量赋为值空!)
2025年7月14日 15:45
min height threshold(div固定一个高度,但内容多了又想让div随内容的变化而变化,怎么解决)
2026年1月6日 11:30
git pull和git clone(git的远程分支是干啥的,和本地的有什么区别)
2025年11月24日 03:15
abap开发工程师要懂什么技术(软件开发人员主要做什么工作)
2026年2月25日 10:45











