C语言:二十三 不用库函数/局部or全局变量写测字符串长度的函数
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;
}
{
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;
}
相关推荐
拉斯厄尔高福 2020-10-19
83540690 2020-08-16
lustdevil 2020-08-03
doupoo 2020-07-28
yuzhongdelei0 2020-07-04
lustdevil 2020-06-25
lustdevil 2020-06-21
上班打发 2020-06-14
xcguoyu 2020-05-15
fanhuasijin 2020-02-17
sulindong0 2020-02-15
Julywhj 2020-02-02
xiaobater 2020-02-02
柠檬班 2020-01-30
JackYin 2020-01-24
86427019 2020-01-20
taoqilin 2020-01-18
八角塘塘主 2020-01-04
jszy 2020-01-07