strlen的四种实现方法
1. 直接调用库函数实现strlen
#include <string.h>
#include <stdio.h>
int main() {
char str[] = "abcdef";
int len = strlen(str);
printf("%d\n", len);
return 0;
}
2. 采用计数器的方法实现strlen
#include <stdio.h>
int my_strlen(char* str) {
int count = 0;
while (*str != '\0') {
count++;
str++;
}
return count;
}
int main() {
char str[] = "abcdef";
int len = my_strlen(str);
printf("%d\n", len);
return 0;
}
3. 采用递归的方式实现strlen
#include <stdio.h>
int my_strlen(char* str) {
if (*str != '\0') {
return 1 + my_strlen(str+1);
} else {
return 0;
}
}
int main() {
char str[] = "abcdef";
int len = my_strlen(str);
printf("%d\n", len);
return 0;
}
4. 采用指针 - 指针的方式实现strlen
#include <stdio.h>
int my_strlen(char* str) {
char* start = str;
char* end = str;
while (*end != '\0') {
end++;
}
return end - start;
}
int main() {
char str[] = "abcdef";
int len = my_strlen(str);
printf("%d\n", len);
return 0;
}
四种方式得到的结果一致: