char *和string的区别
differences between char * and string
我想知道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的大小。
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- malloc 和 calloc 与 std::string 之间的区别
- std::string [] 运算符和 at() 之间的区别
- Platform::String 和 std::string 之间的区别
- 字符串和向量<string>元素之间的区别
- ::std::string 和 std::string 有什么区别
- 字符 * 和 const_cast<字符*>(string.c_str())有什么区别
- 列出测试<string>()和列表<string>测试的区别?
- std::to_string、boost::to_string 和 boost::lexical_cast<std::string> 有什么区别?
- "std::string const &s"和"const std::string &s"有什么区别?
- vector::p ush_back 和 string::p ush_back 之间的区别
- (string&)string() 和 (string&)" 作为默认参数有什么区别?
- char *和string的区别
- std:string和std::string的区别
- string.h和cstring的区别
- std::string与std::u16string(或u32string)的区别
- std::string 的运算符 [] 和常量运算符 [] 之间的区别
- 将 std::string 和 std::string::c_str() 放入字符串流中有什么区别?
- std::string,string val 和 string val 之间的区别 = " "
- std::string 和 std::vector 有什么区别<char>?