27得票1回答
strlen - 字符串的长度有时会增加1

我正在做一些C谜题。在大多数情况下,我能够找到正确的答案,但是有一个问题我一直无法解决。我知道正确的答案,但不知道原因。请看代码:char c[] = "abc\012\0x34"; 使用标准C编译器,strlen(c)会返回什么? 我的编译器返回4,但我预期的是3。 我原以为strlen...

25得票8回答
在循环条件中使用strlen()比仅检查空字符要慢吗?

我读到使用strlen函数比如下的这种测试方法更为昂贵: 我们有一个字符串x,长度为100个字符。 我认为for (int i = 0; i < strlen(x); i++) 这段代码比这个代码更昂贵:for (int i = 0; x[i] != '\0'; i++) 这是真的吗...

25得票3回答
REPNZ SCAS汇编指令的细节

我正在尝试反向工程一个二进制文件,但以下指令让我感到困惑,有人能解释一下它具体是做什么吗?=>0x804854e: repnz scas al,BYTE PTR es:[edi] 0x8048550: not ecx 地点:EAX: 0x0 ECX: 0xfffff...

23得票4回答
strlen() PHP函数给出的Unicode字符长度不正确

我正在尝试获取这个Unicode字符字符串的长度$text = 'نام سلطان م'; $length = strlen($text); echo $length; 输出20 它如何确定Unicode字符字符串的长度?

23得票3回答
格式化字符串“%d”期望的参数类型为“int”,但是第二个参数的类型为“size_t”[-Wformat]。

我已经搜索了关于这个警告的信息,发现大家在代码中都犯了一些错误,但是我遇到了一些非常出乎意料的问题,无法解决。 我们期望strlen(x)是一个整数,但是这个警告告诉我什么? strlen 怎么可能不是 int 呢?In function ‘fn_product’: line85:3:warn...

22得票3回答
在C++中获取const char*的长度的最佳方法

我知道两种方法来获取const char *的长度const char * str = "Hello World !"; int Size = 0; while (str[Size] != '\0') Size++; 另一种方法非常简单const char * str = "Hello Wor...

21得票8回答
如何在C语言中找到argv[]的长度

#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]){ int fir; //badly named loop var...

20得票5回答
哪个C++头文件声明了strlen函数?

strlen()属于哪个库? 它是属于cstring还是string? 我尝试了下面的代码,它确实可以工作:include <iostream> using namespace std; //withou include<string.h> int main() ...

19得票2回答
为什么要重新实现strlen为循环+减法?

受 SQLite3 中以下代码的启发,这个问题: static int strlen30(const char *z){ const char *z2 = z; while( *z2 ){ z2++; } return 0x3fffffff & (int)(z2...

18得票1回答
strlen函数如何内部工作?

strlen()函数内部是如何工作的?该函数中是否存在任何固有的错误?