不能使用任何库函数,不能定义任何变量实现strlen和strrev

最近听到的两道面试、笔试题,感觉挺有意思的:
1。实现库函数strlen,不能使用任何库函数,不能定义任何变量。
2。实现函数strrev,该函数有两个参数,将其中一个字符串逆序放到另一个字符串指针中,同样要求不能使用任何库函数,不能定义任何变量。

采用递归实现,刚好可以满足这两道题的要求:

 

void strrev(char **dest, const char *src)//char ** dest用的指向指针的指针//值得注意
{
if(*src == '/0')
return;
else
{
strrev(dest, src+1);
*(*dest)++ = *src;
}
}

int strlens(const char *src)
{
if(*src != '/0')
return strlens(++src)+1;
else
return 0;
}



 

你可能感兴趣的:(递归,strlen,strrev)