【发布时间】:2017-11-25 04:24:12
【问题描述】:
我知道两种获取 const char * 长度的方法
const char * str = "Hello World !";
int Size = 0;
while (str[Size] != '\0') Size++;
其他方式很简单
const char * str = "Hello World !";
size_t Size = strlen(str);
但我不想使用像 strlen 这样的 str lib 函数,而且我认为这个函数也使用了我的第一种方式行为。因为在 pc 世界中,当我们想要计算一些东西时,我们需要计算每个块的长度,并且没有魔法可以通过一个动作来获得长度,所以我认为第一种方法是获得 const char * 长度的最佳选择。其他方式我认为第一种方式对于重弦可能太重了。所以我很困惑。哪种方式更好,为什么其他方式不是?
【问题讨论】:
-
标准库中的某些东西几乎总是比您自己编写代码来做同样事情的任何东西都快,而且肯定不太可能出现错误。
-
这两个示例是等价的,但
strlen可能会更快,因为编译器特定的东西,并且无论如何最好使用已经为您编写的代码。 -
你为什么不想使用
strlen()? -
另外,既然是C++,只要使用
std::string,就可以使用它的size()方法。 -
或者使用新的 std::string_view 和你的 C 字符串。
标签: c++ string-length strlen