char *和string的区别

differences between char * and string

本文关键字:区别 string char      更新时间:2023-10-16

我想知道char *string的区别。例如以下代码:

char *a;
string b;
有谁能帮帮我吗?

假设您指的是std::string, string是一个标准库类建模字符串。

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

如果你有选择,使用std::string,因为你不必担心自己的内存

char*是指向原始类型的指针:char

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

两个完全不同的实体!

如果你担心的是功能,string是一个功能 char*,也就是说你不需要担心space

char *

declaration/initialization: char* str = "Use";

追加:XXX

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

字符串

declaration/initialization: string str = "Use";

追加:str += " This!"

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

char*也可以是指向字符数组第0位(第一个)的指针。它经常在C中使用,其中不支持使用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()成员函数获取str的大小。