像strlen, strcpy, strcat这样的字符串函数真的是又老又坏吗?



我问了一个关于这个话题的问题,人们说我的大学有问题,教我这些古老的图书馆。这是真的吗?我应该用什么来代替呢?对不起,我还是新人,我是第一年。

原始C字符串是造成实际软件中相当大比例安全漏洞的原因。

正确处理缓冲区是很困难的,而且出错的情况非常普遍。字符串的低级原始内存缓冲区操作是有用处的,但是首先教它是有问题的。

教c++的一种方法是把它当作C来教,然后添加一些c++的特性。另一种方法是先将其作为c++进行教学,然后添加与C兼容的子方言。

你听到的批评是反对先教C再教c++的选择。

学习如何用C编程是伟大的;同时学习C和c++只会让你成为一个糟糕的C和c++程序员。

在c++刚发明的时候,这是一种合理的方法。有C专家,但没有c++专家。从那时起已经过去了几十年,c++中的最佳实践与C中的最佳实践不再那么相似,反之亦然。

了解它们的作用是很有用的,因为您可能会遇到使用它们的古老代码。

但是不,在现代c++中没有必要使用它们。我说的现代,是指现在正在写的东西,或者是在这一千年里写的东西。

您提到的功能之一,std::strlen是相当可以使用的。从技术上讲,你不需要它,但使用起来也不是很糟糕。

我应该用什么代替?

大多数情况下:std::string和std::string_view及其成员函数

最新更新