gpt4 book ai didi

c++ - C字符串和C++字符串有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 23:09:23 35 4
gpt4 key购买 nike

C 字符串和 C++ 字符串有什么区别。特别是在进行动态内存分配时

最佳答案

我几乎不知道从哪里开始 :-)

在 C 中,字符串只是 char 数组,按照惯例,它以 NUL 字节结尾。在动态内存管理方面,您可以简单地 malloc 为它们分配空间(包括额外的字节)。修改字符串时的内存管理是您的责任:

char *s = strdup ("Hello");
char *s2 = malloc (strlen (s) + 6);
strcpy (s2, s);
strcat (s2, ", Pax");
free (s);
s = s2;

在 C++ 中,字符串 (std::string) 是具有所有相关的自动内存管理和控制的对象,这使得它们更加安全和易于使用,尤其是对于新手而言。对于动态分配,使用类似:

std::string s = "Hello";
s += ", Pax";

我知道我更喜欢使用哪个,后者。您可以(如果需要)始终使用 c_str() 方法从 std::string 构造一个 C 字符串。

关于c++ - C字符串和C++字符串有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3454900/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com