char *和string之间的差异

时间:2013-06-18 13:10:29

标签: c++ string char

我想知道char *string之间的区别。 例如,在此代码中:

char *a;
string b;

有人可以帮我吗?

5 个答案:

答案 0 :(得分:14)

假设您指的是std::stringstring是建模字符串的标准库类。

char *只是指向单个char的指针。在C和C ++中,存在各种函数,它们将指向单个char的指针作为参数,并将沿着内存跟踪,直到达到0内存值(通常称为 null终止符)。以这种方式,它模拟一串字符; strlen是执行此操作的函数(来自C标准库)的示例。

如果您有选择,请使用std::string,因为您不必关心记忆。

答案 1 :(得分:3)

char*是指向基本类型的指针:char

string是标准模板库中的第一个类对象,它包含许多功能(如连接两个字符串)并使其更易于使用。

2个非常不同的实体!

答案 2 :(得分:0)

简单,char *a;声明类型为char的指针'a',它将指向一个常量字符串或字符数组。 String b;将b声明为string type.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()来获取str的大小。

答案 3 :(得分:0)

char*也可以是指向字符数组的0(第一)位置的指针。它经常在 C 中使用,其中不支持使用String。

答案 4 :(得分:0)

如果您担心功能,string功能 char*,您无需担心space

<强>字符*

声明/初始化:char* str = "Use";

追加:XXX

查找长度:strlen(str); //需要包含<string.h>或创建自己的

<强>字符串

声明/初始化:string str = "Use";

追加:str += " This!"

在一个头文件中找到长度:str.length() //全部