size_t返回指针减法

我想rthe以下错误消息……错误:从’const char *’无效转换为’size_t’

return 0; } size_t strlen(const char *s1) { return s1 - 0; } 

从指针中减去零不会改变指针,就像从数字中减去零不会改变数字一样。

您应该减去原始指针而不是零,以获得长度:

 size_t strlen(const char *s1) { const char *orig = s1; while (*s1) { s1++; } return s1 - orig; }