不允许调用库函数,也不允许使用任何全局或局部变量编写strlen函数。

这是一道面试题,可以使用递归的方式解答,答案如下:

 

#include <stdio.h>

int mylen(char* p){
        if(*p == '\0'){
                return 0;
        }
        return 1 + mylen(p+1);
}

int main(void){
        char* s = "123456789";
        printf("%d\n", mylen(s));
        return 0;
}

运行结果:

 

9