精华内容
下载资源
问答
  • cstring和string的区别

    2017-01-17 15:29:00
    利用MFC进行编程时,我们从对话框中利用GetWindowText得到字符串是CString类型,CString是属于MFC类。...首先要明确,标准C中是不存在string类型string是标准C++扩充字符串操作一个类。但是我们

    利用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*串配合使用,所以也会涉及到这两个类型的转化问题。

    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'的字符串*/

    对于CString与其他类型的转化方法很多,但其实都殊途同归,朝着一个方向即将类型首先转化为char*类型,因为char*是不同类型之间的桥梁。得到char*类型,转化为其他类型就非常容易了。


    展开全文
  • CString和String的区别

    2013-08-13 19:32:41
    string和CString均是字符串模板类,string为标准模板类(STL)定义字符串类,已经纳入C++标准之中 string 是 语言东西 是c++语言 CString 是VC++ IDE内嵌,是MFC 不是一个概念 CString 离开VC++不能...
    CString 是MFC或者ATL中的实现,
    string是C++标准库中的实现
    string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中
    
    
    string 是 语言的东西 是c++语言的
    CString 是VC++ IDE内嵌的,是MFC的
    不是一个概念
    CString 离开VC++不能用
    string  在任何支持C++的IDE中都能用
    在MFC、ATL中使用字符串尽量使用CString,毕竟都是微软的孩子,各方面都比其它更有优势,而在非微软平台上或对移植性要求较高的场合推荐使用string,标准模板库提供了那么强大的泛型算法,没必要再自己去造车轮。

    展开全文
  • CString和string的区别

    2013-04-16 15:24:00
    刚开始不明白,后来百度...string和CString均是字符串模板类,string为标准模板类(STL)定义字符串类, 已经纳入C++标准之中; CString(typedef CStringT<TCHAR, StrTraitMFC<TCHAR>> 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,

    标准模板库提供了那么强大的泛型算法,没必要再自己去造车轮。

    转载于:https://www.cnblogs.com/shinecox/archive/2013/04/16/3024201.html

    展开全文
  • Cstring和string的区别和联系 string 转 CString CString.format("%s", string.c_str()); //用c_str()确实比data()要好 char 转 CString Cstring.format("%s", char*); char 转 string string s(char*); //...

    Cstring和string的区别和联系

    1. string 转 CString
    CString.format("%s", string.c_str());
    //用c_str()确实比data()要好
    
    1. char 转 CString
    Cstring.format("%s", char*);
    
    1. char 转 string
    string s(char*);
    //只能初始化,在不是初始化的地方最好还是用assign().
    
    1. string 转 char*
    char *p = string.c_str();
    
    1. CString 转 string
    string g(CString.GetBuffer());
    //GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间
    

    相同点:

    1. 用他们都可以取代对 char* 的使用
    2. 都封装了有丰富的字符串操作接口
    3. 他们都是 C++ 的类库

       以 string 的使用为例,不能有如下的用法:

    string* pstr =NULL;				//定义一个指向字符串的指针
    pstr->append("Hello world.");	//再该字符串的末尾粘接上另一个字符。这样做编译器不会有任何警告和错误,但是运行的时候就会有异常。
    

       原因是没有理解 string 是一个类,而在定义类的对象的时候是需要调用其构造函数的。上面既没有调用 string 的构造函数,而且还把指针赋值NULL,很明显调用该类的对象的接口的时候会出错。但是编译器却发现不了这个问题的。

       正确的方法是如下:

    /*
    	这里必须要使用 c++ 的宏 new,而不能用 c 中的 malloc,原因是 new 不但会分配一块内存,还会执行了类的构造函数。
    当然, string 类的实例化还可以通过已有的某个 string 对象进行。
    */
    
    string* pstr = new string("Hello world.");
    pstr->append("Hello world.");
    cout<<"string str is:"<<str<<endl;
    
    1. 他们都是用了模板的技术

    不同之处

    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*之间的转换方法也不一样。

    详情请见

    展开全文
  • C++笔记(cstring和string的区别

    万次阅读 多人点赞 2018-06-11 10:45:51
    是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string&lt;char&gt;的typedef),用于字符串操作。&lt;cstring&gt;是C标准库头文件&lt;string.h&...
  • string.h是C语言版本的头文件,不支持定义string类型,支持strcpy等字符串处理函数 cstring是C++语言std版本的头文件,不支持定义string类型,支持strcpy等字符...具体请看头文件cstringstringstring.h的区别 ...
  • 是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string的typedef),用于字符串操作。 是C标准库头文件<string.h>的C++标准库版本,包含了C风格字符串(NUL即’\0...
  • CString/string 区别及其转化 利用MFC进行编程时,我们从对话框中利用GetWindowText得到字符串是CString类型,CString是属于MFC类。而一些标准C/C++库函数是不能直接对CString类型进行操作,所以...
  • 是C++标准库头文件,包含了拟容器 class std::string 声明(不过 class string 事实上只是 basic_string<char>typedef,用于字符串操作。 <cstring>是 C 标准库头文件 <string.h> C++ 标准...
  • Cstring和string的区别和联系  2010-07-07 10:21:51| 分类: c++语言 | 标签: |字号大中小 订阅 相同点: (1)用他们都可以取代对char*的使用。 (2)都封装了有丰富的...
  • &lt;string.h&gt;是就C头文件,对应是基于char字符处理函数。...是新的string类,其中对应charwchar_t,而这对应命名空间分别是using std::string和using std::wstring,当然两者可统一使用...
  • /////////////////////////////1///////////////////////// char route[100]; GetModuleFileName(NULL,route,...这里准备获取当前目录,第一个可以正常工作,第二个不可以,想知道这里CString和string有什么区别
  • &lt;string.h&gt; &lt;string.h&...是C版本头文件,包含比如strcpy、strcat之类...cstring&gt; 在C++标准化(1998年)过程中,为了兼容以前,标准化组织将所有这些文件都进行了新定义,加入...
  • CStringstring的区别

    2017-11-17 10:39:26
    string和CString均是字符串模板类,string为标准模板类(STL)定义字符串类,已经纳入C++标准之中; CString(typedef CStringT> CString)为Visual C++中最常用字符串类,继承自CSimpleStringT类,主要应用...
  • Cstring和string的区别和联系 c++语言2010-07-07 10:21:51阅读113评论0 字号:大中小 订阅 相同点: (1)用他们都可以取代对char*的使用。 (2)都封装了有丰富的字符串操作接口。 (3...
  • CString和string区别

    2010-11-15 09:48:00
    转:CString和string区别 CString,是ATL/MFC共享, string是C++标准库 相同点: (1)用他们都可以取代对char*使用。 (2)都封装了有丰富字符串操作接口。 (3)他们都是C++类库。-- ...
  • cstring和string区别

    2017-06-01 17:19:05
    1.cstring 是C语言版本头文件,它是C风格字符串头文件,包含了以下函数,如: strlen(s)//返回s长度,不包括字符串结束符'\0' strcmp(s1,s2)//比较两个字符串s1s2,若s1与s2相等,返回0,若s1大于s2,返回...
  • string.h、cstring和string区别

    千次阅读 2018-08-19 21:40:30
    &lt;string.h&gt; C版本头文件,对应基于char*字符串处理函数 &lt;cstring&...c++对标准c字符串处理函数c++增强 ...C++标准库(STL)中string字符串类,定义了字符串各种操作...
  • 是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string&lt;char&gt;的typedef),用于字符串操作。 &lt;cstring&gt;是C标准库头文件&lt;string.h&...
  • CStringstring的区别与转换2014年09月29日 C++知识 暂无评论 阅读 314 次一、简介CString是MFC或者ATL中的实现。这也就是在MFC、ATL中使用字符串尽量使用CString,它比其它更有优势,方便好用。string是C++标准...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 240
精华内容 96
关键字:

cstring和string的区别