在哪里使用c ++(即std :: string)字符串以及在何处使用'\ 0'终止c字符串

时间:2014-02-06 06:14:26

标签: c++ string

在何处使用std::string以及在何处使用'\0'终止的C字符串 基本上我想知道它们之间有什么边缘。

2 个答案:

答案 0 :(得分:2)

c ++ std :: string:

总的来说,

字符串比char *更安全。通常当你使用char *做事情时,你必须检查事情以确保事情是正确的,在字符串类中所有这些都是为你完成的。 通常在使用char *时,你必须释放你分配的内存,你不必使用string,因为它会在被破坏时释放它的内部缓冲区。 字符串在c ++ stringstream中运行良好,格式化IO很容易。

<强>炭

使用char *可让您更好地控制场景背后发生的事情,这意味着您可以根据需要调整性能。

答案 1 :(得分:1)

零终止char *与C接口和std :: string一起使用 - 在常见的c ++代码中。但是没有唯一的选择 - 如果你真的有性能意识,你可能想要编写自己的字符串类(例如没有动态内存分配的固定长度)