无聊,借了用google的ID一用

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。 -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。 -毛泽东
2007-09-05 21:08
2007-09-05 21:10
2007-09-05 21:12

2007-09-05 21:14
2007-09-05 21:18
说实话,还是你的好
递归虽然时间上慢了点,不过思路很别致

2007-09-05 21:21
[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++标准就难说了

2007-09-05 21:54

2007-09-06 09:05
给递归的加个参数检查:
int MyStrlen(const char *p)
{
return p ? (!*p) ? 0 : 1 + MyStrlen(p + 1) : -1;
}
当传入指针为NULL时安全返回,返回植-1。
2007-09-06 09:28
int maxlen(char *s)
{
while(*s)
{
s++;
}
return (int)s;
}
int str_len(char *s)
{
return (maxlen(s)-(int)&s[0]);
}
int main()
{
printf("len:%d\n",str_len("strlen"));
}

2007-09-06 09:38