. C语言strlen函数的实现,不采用串操作。
时间: 2024-12-20 16:26:19 浏览: 6
C语言的`strlen`函数用于计算字符串的长度,通常通过遍历字符串直到遇到空字符('\0')来实现。如果要求不直接使用串操作(如指针加法),可以考虑递归的方式来间接计数。下面是一个简单的非标准但理解直观的递归版本的`strlen`函数实现:
```c
#include <stdio.h>
int my_strlen(const char *str) {
// 如果str为空,返回0
if (!str)
return 0;
// 递归情况:如果当前字符不是'\0',则继续递归处理下一个字符
else if (*str != '\0')
return 1 + my_strlen(str + 1);
// 结束条件:遇到'\0',返回已处理过的字符数
else
return 0;
}
int main() {
const char *test_str = "Hello, world!";
printf("Length of the string is: %d\n", my_strlen(test_str));
return 0;
}
```
这个版本通过检查每个字符是否为结束符来逐个减少问题规模,直到达到基本情况。
阅读全文