“人们应该始终使用 std::string 而不是 c 风格的字符串 (char *
)”是此处发布的几乎所有源代码的建议。虽然该建议无疑是好的,但要解决的实际问题不允许详细说明该建议的为什么?方面。这个问题是作为相同的占位符。
一个好的答案应该包括以下几个方面(详细):
- 为什么要在 C++ 中使用
std::string
而不是 c 风格的字符串? #1
中提到的做法有哪些缺点(如果有的话)?- 在哪些情况下,与
#1
中提到的建议相反是一种好的做法?
最佳答案
- std::string 管理自己的内存,因此您可以轻松地复制、创建、销毁它们。
- 您不能将自己的缓冲区用作 std::string。
- 您需要将 c 字符串/缓冲区传递给期望获得缓冲区所有权的对象 - 例如第 3 方 C 库。
关于c++ - 为什么要在 C++ 中使用 std::string 而不是 c 风格的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10022117/