C语言指针方法重写strlen函数
时间: 2024-10-18 20:01:18 浏览: 32
在C语言中,标准库函数`strlen()`用于计算字符串的长度,它接受一个字符数组作为输入,并返回该数组中从第一个非空字符到最后一个字符(包括结束符'\0')的长度。由于`strlen()`不是一个成员函数,所以我们不能直接通过指针来重写它。
然而,我们可以创建一个自定义版本的`strlen`函数,使用指针作为参数。这是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
size_t custom_strlen(const char* str) {
const char *p = str;
while (*p != '\0') {
p++;
}
return (size_t)(p - str); // 返回从str到'\0'之间的字节数,不是字符数(对于UTF-8编码可能是不准确的)
}
int main() {
const char* test_str = "Hello, world!";
printf("Length of the string is: %zu\n", custom_strlen(test_str));
return 0;
}
```
在这个例子中,我们定义了一个名为`custom_strlen`的新函数,它接收一个指向字符的指针`str`,然后遍历直到找到`\0`。最后返回从原始指针到`\0`的偏移量,表示字符串的实际长度(不包括结束符)。
注意:这个`custom_strlen`并不是对标准库函数的重写,而是一个等效的实现,通常我们会推荐直接使用`strlen`,因为它已经经过优化并处理了各种边界条件。
阅读全文