char *
和string
之间的区别。
例如在以下代码中:char *a;
string b;
有人能帮我吗?
char *
和string
之间的区别。
例如在以下代码中:char *a;
string b;
有人能帮我吗?
假设您指的是std::string
,string
是一个标准库类,用于建模字符串。
char*
只是指向单个字符的指针。在C和C++中,存在各种函数,它们将以单个字符为参数的指针跟踪到内存,直到达到0内存值(通常称为null终止符)。通过这种方式,它建模了一串字符; strlen
是执行此操作的函数之一(来自C标准库)。
如果可以选择,请使用std::string
,因为您不必关心内存。
string
是一个类,它的哪个数据成员保存我们分配给字符串的文本? - ajaysinghnegichar*
是指向基本类型 char
的指针。
string
是标准模板库中的一等对象,它封装了许多功能(如连接两个字符串),使其更易于使用。
这是两个非常不同的实体!
很简单,char *a;
声明了一个类型为char
的指针'a',它将指向一个常量字符串或字符数组。String b;
将b声明为string
类型的对象。这里的String是一个类,包含多个字符串操作成员函数(方法)。您可以在此处查看更多详细信息:http://www.cplusplus.com/reference/string/string/
下面是一个描述string
对象及其成员函数的示例程序:
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str ("steve jobson");
cout <<"hello the name of steve jobs consists of"<< str.size() << " characters.\n";
return 0;
}
str
被声明为字符串对象,并调用成员函数size()
来获取字符串的大小。
char*
也可以是指向字符数组第0(第一)个位置的指针。在C中经常使用,因为不支持字符串的使用。
如果您担心功能性问题,string
是一个功能强大的char*
,也就是说,您不必担心space
char*
声明/初始化:char* str = "Use";
追加:XXX
查找长度:strlen(str);
//需要包括<string.h>
或创建自己的函数
string
声明/初始化:string str = "Use";
追加:str += " This!"
查找长度:str.length()
//所有都在一个头文件中