39得票6回答
strlen没有检查NULL值

strlen()函数为什么不检查NULL? 如果我执行strlen(NULL),程序会产生分段错误。 试图理解其中的原理(如果有的话)。

9得票5回答
如何使用strcpy并返回复制的字符数?

我想将一个以null结尾的字符串复制到另一个位置,并想知道复制后的字符串有多长。效率非常重要。有strcpy函数可以实现这一点,但它不返回实际复制的字符数。 当然,我可以简单地调用strlen来检测复制后字符串的长度,但这意味着再次遍历字符串中的字符,而strcpy本身必须跟踪它复制了多少个...

7得票3回答
为什么要使用“strlen30()”而不是“strlen()”?

我已经阅读并思考了SQLite的源代码。 static int strlen30(const char *z){ const char *z2 = z; while( *z2 ){ z2++; } return 0x3fffffff & (int)(z2 - z); } ...

9得票3回答
strlen性能实现

这是一个多功能问题: 这与glibc strlen实现相比如何? 一般来说,有更好的方法吗?是否适用于自动向量化? #include <stdint.h> #include <stdlib.h> #include <string.h> #includ...

14得票6回答
strlen()和UTF-8编码

假设使用 PHP 的 UTF-8 编码和 strlen() 函数,是否可能使得这个字符串长度为 4? 我只关心 strlen() 函数,不关心其他函数。 以下是该字符串: $1�2 我已经在自己的电脑上测试过,并验证了 UTF-8 编码,得到的答案是 6。 我在 strlen 的...

304得票9回答
为什么glibc的strlen需要如此复杂才能快速运行?

我在这里查看 strlen 代码,我想知道代码中使用的优化是否真的有必要?例如,为什么像以下代码一样的东西不能同样地或更好地工作呢?unsigned long strlen(char s[]) { unsigned long i; for (i = 0; s[i] != '\0...

29得票5回答
在编译时确定#define字符串的长度

我有一个C程序(一个Apache模块,即程序经常运行),它将在套接字上write()一个以0结尾的字符串,因此我需要知道它的长度。 该字符串被定义为:#define POLICY "<?xml version=\"1.0\"?>\n" \ "<!DOCTYPE cro...

18得票6回答
检查PHP的GET变量是否设置为任何值?

我需要检查变量是否设置了某些值。到目前为止,我一直使用 strlen(),但这非常尴尬,因为我相信这不是一种很高效的函数。 我该如何更有效地执行此类检查:if (strlen($_GET['variable']) > 0) { Do Something } 请注意,如果$_GE...

113得票18回答
如果在循环条件中使用strlen,会被计算多次吗?

我不确定以下代码是否会导致冗余计算,或者这是编译器特定的吗?for (int i = 0; i < strlen(ss); ++i) { // blabla } 当i增加时,strlen()会每次被计算吗?

28得票10回答
GCC中strlen()函数的实现在哪里?

有没有人能够指引我查找GCC中 strlen() 的定义?我已经在4.4.2版本的代码中用grep搜索了半个小时了(同时也疯狂地Google),但似乎找不到实际实现了 strlen() 的位置。