// 递归
#include <stdio.h>
#include <windows.h>
#pragma warning (disable : 4996)
int Strlen(char * str){ // 传入地址
if( *str == '\0'){ // 若 str 储存地址所指的内存上存储的是 ' \0 '
return 0;
}
// 若 str 储存地址所指的内存上存储的不是 ' \0 ' ,
// 则 str 上存储的地址 +1 ,更新所指
return 1 + Strlen(str + 1);
}
int main( )
{
// 定义一个 char 类型指针变量,保存的是字符串 首字符a的地址。
const char * str = "abcdef";
int len = Strlen( str );
printf("%d ", len);
system("pause");
}
// 非递归
#include <stdio.h>
#include <windows.h>
#pragma warning (disable : 4996)
int Strlen(char * str){
int count = 0;
while (*str != 0){
count++;
str++;
}
return count;
}
int main( )
{
const char * str = "abcdef";
int len = Strlen( str );
printf("%d ", len);
system("pause");
}