- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我很困惑 strnlen
如何在 C++ 中使用非 null 终止的字符串,因为我不确定它如何计算大小。 strlen
的实现很简单:
size_t strlen(char *s)
{
size_t sz;
while(*s++ != '\0')
{
++sz;
}
return sz;
}
但是您将如何实现 strnlen()
?
最佳答案
比πάντα ῥεῖ's answer短一点:
size_t strnlen(const char * s, size_t len) {
size_t i = 0;
for ( ; i < len && s[i] != '\0'; ++i);
return i;
}
编辑:
为了向 future 的读者和可能的反对者澄清,当我写这个答案时,我的代码实际上更短了。现在不是了,因为另一个帖子被编辑了。我不认为这应该成为对我投反对票的理由。
关于c++ - strnlen 在 C++ 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21536064/
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
在我当前的项目中,我根据 C11 标准进行编码(使用 gcc -std=c11 构建)并且需要类似 strnlen 的东西(strlen 的“安全”版本,它返回一个以 0 结尾的字符串的长度,但只能达
我编写了以下代码以更好地理解 strnlen 的行为方式: #include #include #include int main(int argc, char **argv) { ch
我很困惑 strnlen 如何在 C++ 中使用非 null 终止的字符串,因为我不确定它如何计算大小。 strlen 的实现很简单: size_t strlen(char *s) { siz
函数 strdup() 和 strndup() 终于进入了即将到来的 C23 标准: 7.24.6.4 The strdup function Synopsis #include char *str
我正在尝试在 LPCXpresso 上为 LPC1769 创建一个项目。我有一个 C 文件调用 #include int main() { //some stuff strnlen(
这是我的情况,我使用 TDM-GCC 4.8.1 从源代码构建了 wxWidgets 3.0。然后我们使用 Haskell 的 cabal系统构建依赖于 wx(例如 wxHaskell)的某些包,ca
我的程序是: #include #include using namespace std; int main(int argc,char **argv) { const static si
我有在 .mm 文件中使用 strnlen 的代码 使用 Xcode 4.2 时编译器可以正常构建。然而 Xcode 3.2.5 找不到 strnlen()... 我已经尝试过针对 strlen 发布
我可能要疯了,但我认为我从未在 C++ 中看到过这种情况(尽管我的引用代码是在 C 中)。为什么这里代码的返回值上有一个static,有什么影响?我认为我从未见过类范围之外的静态函数(但显然 C 没有
我正在构建最新 dcraw.c 的跨平台 OS X 版本我在 OS X 10.6.8 上执行此操作以获得 PPC 兼容性。现在我的问题是 strnlen 似乎在最新版本的程序中使用,它在 10.6.8
我是一名优秀的程序员,十分优秀!