无聊,借了用google的ID一用
九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。 -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。 -毛泽东
[CODE]#include <stdio.h>
int MyStrlen(char *p)
{
return ( MyFoo(p) - (int)p )/sizeof(char) ;
}
int MyFoo(char *p)
{
if(!(*p)) return (int)p;
else MyFoo(p+1);
}
int main()
{
printf("%d\n", MyStrlen("Hello"));
return 0;
}[/CODE]
C标准肯定行得通,c++标准就难说了
给递归的加个参数检查:
int MyStrlen(const char *p)
{
return p ? (!*p) ? 0 : 1 + MyStrlen(p + 1) : -1;
}
当传入指针为NULL时安全返回,返回植-1。