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

如题所述

第1个回答  2016-07-08
  我们在C++的开发中经常会碰到string、char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆。下面详细介绍这三者的区别、联系和转换:   各自的区别   char*:   char*是一个指向字符的指针,是一个内置类型。可以指向一个字符,也可以表示字符数组的首地址(首字符的地址)。我们更多的时候是用的它的第二的功能,来表示一个字符串,功能与字符串数组char ch[n]一样,表示字符串时,最后有一个 '\0'结束符作为字符串的结束标志。   string:   string是C++标准库(STL)中的类型,它是定义的一个类,定义在<string>头文件中。里面包含了对字符串的各种常用操作,它较char*的优势是内容可以动态拓展,以及对字符串操作的方便快捷,用+号进行字符串的连接是最常用的操作。   CString   CString常用于MFC编程中,是属于MFC的类,如从对话框中利用GetWindowText得到的字符串就是CString类型,CString定义在<afx.h>头文件中。CString(typedef CStringT> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,所以使用CString时要包含afx.h文件#include <afx.h>。

CString与string,char*的区别和转换
下面详细介绍这三者的区别、联系和转换: 各自的区别 char*: char*是一个指向字符的指针,是一个内置类型。可以指向一个字符,也可以表示字符数组的首地址(首字符的地址)。我们更多的时候是用的它的第二的功能,来表示一个字符串,功能与字符串数组char ch[n]一样,表示字符串时,最后有一个 ...

cstring和string的区别
CStringcstr=str;\/\/char*->CString string类型不能直接赋值给CString 至于int与float、string与char*之间的转化可以使用强制转化,或者标准库函数进行。对于CString与其他类型的转化方法很多,但其实都殊途同归,朝着一个方向即将类型首先转化为char*类型,因为char*是不同类型之间的桥梁。得到char*类型,转化...

cstring与string区别联系
cstring与string在C++中扮演着不同的角色,它们之间既有区别又有联系。string是C++标准库中的类,属于std命名空间,是一种字符容器,提供了方便的字符串处理和算法支持,支持直接操作和通过文件处理。而cstring是C++对C语言string.h的C++版本,兼容旧函数,但采用了更现代的C++写法,且在mfc中还有一个名为...

Cstring 和string的区别
(2)string类既是一个标准c++的类库,同时也是STL(Standard Template Library,标准模版库)中的类库,所以支持Iterator操作。(3)CString类和string类提供的方法接口并不完全相同,所以不要糊里糊涂的认为某个类中怎么没有另外一个类中的方法啊。:-)。。(4)他们和char*之间的转黄方法也不一样。

cstring与string有何区别
string与cstring有什么区别<string>是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string<char>的typedef),用于字符串操作。<cstring>是C标准库头文件<string.h>的C++标准库版本,包含了C风格字符串(NUL即'\\\\0'结尾字符串)相关的一些类型和函数的声明,...

string和cstring的区别
string类型不能直接赋值给CString 至于int与float、string与char*之间的转化可以使用强制转化,或者标准库函数进行。对于CString与其他类型的转化方法很多,但其实都殊途同归,朝着一个方向即将类型首先转化为char*类型,因为char*是不同类型之间的桥梁。得到char*类型,转化为其他类型就非常容易了。

C++中如何把string转成CString?
而再使用MFC的某些函数时,又必须传递相应的CString类型参数,所以,会面临数据类型的转换,string类型变量转为为Cstring类型变量方法为:先将string类型变量转换为const char*类型,然后再直接赋值就可以了。例如:CString cstr;sring str = “asdasd”;cstr = str.c_str();...

怎么比较char *和CString这两个字符串的大小
char* 类型和CString类型的字符串比较,在多字节状态下,可以用strcmp和memcmp函数进行比较.为了统一类型,可以先将char*类型字符串复制给一个CString类型字符串,再做比较.或者将CString类型的字符串复制给一个char*类型的变量,再与原char*类型字符串比较....

CString和char*的互相转换
在Unicode环境下,将CString转换为char*,常见的方法包括考虑宽字节编码,涉及内存拷贝和字符串长度计算,特别注意最后一个字符需要手动设为0。总的来说,这个过程可以归纳为计算字节长度,然后确保正确编码。更为便捷的方法是使用T2A和W2A函数,它们在处理这种转换时表现出色。相反,将char*转换为CString,...

LPTSTR cstring string char * 它们的区别,以及如何相互转化。求高手告...
CString cs;string s;char *ch1; wchar_t *ch2;cs=ch1; ch2=cs.GetString;s=ch; ch=s.str_c;

相似回答
大家正在搜