码迷,mamicode.com
首页 > 编程语言 > 详细

C语言:二十三 不用库函数/局部or全局变量写测字符串长度的函数

时间:2020-01-29 10:18:27      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:++   字符串   递归调用   char   c语言   else   编译器   不用   null   

int my_strlen(char *strDest)
{
assert(strDest != NULL); //注释①
if(‘\0‘ == *strDest)
return 0;
else //注释②
return (1+my_strlen(++strDest));
}

注释①:
assert是个宏,不是库函数,仅在debug版本中起作用,在release版本中会被编译器优化掉不起任何作用,如果assert后跟的表达式为False,将终止程序运行并报错。

注释②:
采用递归调用自身的方式完成函数功能。
my_strlen()函数还可以写的更简洁
int my_strlen(char *strDest)
{
assert(strDest != NULL);
return (strDest == ‘\0‘) ? 0:(1+my_strlen(++strDest));
或者
return (*strDest) ? (1+my_strlen(++strDest)) : 0;
}

 

C语言:二十三 不用库函数/局部or全局变量写测字符串长度的函数

标签:++   字符串   递归调用   char   c语言   else   编译器   不用   null   

原文地址:https://www.cnblogs.com/wuqi1003/p/12239634.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!