C语言 --strlen库函数的三种实现方式

it2022-12-27  80

1.递归 不创建临时变量

#include<stdio.h> #include<assert.h> size_t my_strlen(char * str) { if (*str == '\0') { return 0; } return 1 + my_strlen(str + 1);

2.指针相减

size_t my_strlen(const char *str) { assert(str != NULL); const char *start = str; while (*str != '\0') { str++; } return str - start; }

3.创建临时变量

size_t my_strlen(const char * str) { assert(str != NULL); int count = 0; while (*str != '\0') { str++; count++; } return count; }

assert是断言,如果指针指向为空则会发出警告。 const 修饰* str ,指针所指向内容不能改变,更加安全。

最新回复(0)