C++ char*和string之间的差异
我想知道C++ char*和string之间的差异,c++,string,char,C++,String,Char,我想知道char*和string之间的区别。 例如,在本代码中: char *a; string b; 有人能帮我吗?假设您指的是std::string,string是一个标准的库类,用于建模字符串 char*只是指向单个char的指针。在C和C++中,存在各种函数,这些函数将把单个字符作为一个参数,并沿着内存进行跟踪,直到达到0内存值(通常称为null终止符)。通过这种方式,它对字符串进行建模strlen是一个函数的示例(来自C标准库) 如果您有选择,请使用std::string,因为您不必
char*
和string
之间的区别。
例如,在本代码中:
char *a;
string b;
有人能帮我吗?假设您指的是
std::string
,string
是一个标准的库类,用于建模字符串
char*只是指向单个char的指针。在C和C++中,存在各种函数,这些函数将把单个字符作为一个参数,并沿着内存进行跟踪,直到达到0内存值(通常称为null终止符)。通过这种方式,它对字符串进行建模strlen
是一个函数的示例(来自C标准库)
如果您有选择,请使用
std::string
,因为您不必关心内存。char*
是指向基本类型的指针:char
string
是标准模板库中的第一类对象,它封装了许多功能(如连接两个字符串),使使用起来更容易
2个完全不同的实体 它很简单,
char*a
声明类型为char
的指针“a”,它将指向常量字符串或字符数组<代码>字符串b将b声明为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;
}
#包括
#包括
使用名称空间std;
int main()
{
字符串str(“steve jobson”);
coutchar*
也可以是指向0(第一个)的指针字符数组的位置。它在C中经常使用,不支持使用字符串。如果您担心功能性,String
是一个功能性的char*
,也就是说您不需要担心空间
char*
声明/初始化:char*str=“使用”
追加:XXX
查找长度:strlen(str);
//需要包含
或创建自己的
字符串
声明/初始化:string str=“使用”
追加:str+=“这个!”
查找长度:str.length()
//所有文件都在一个头文件中@DavidHeffernan猫可以吃饼干,饼干不能吃猫。@SuvP在极端情况下,饼干可以给猫吃。@SuvP你知道他们之间的共同点吗?@marounnaroun都可以无所事事地躺着吗?(我希望你没有想到nethin技术:p)@SuvP不。它们都不是恐龙。如果你将字符声明为指向字符数组的指针,那么你的答案是正确的,但这里有其他一些东西,它是单个字符即使是单个字符,它也是一个带有一个单元格的数组。*a表示它的值,而&a表示它在内存中的地址。我不明白你使用的是哪个数组是指“逻辑”还是“物理”。既然string
是一个类,那么它的哪个数据成员持有我们分配给string的文本?