C 语⾔中求字符串长度的函数的⼏种实现⽅法
1.最常⽤的⽅法是创建⼀个计数器,判断是否遇到‘\0',不是'\0'指针就往后加⼀。
1
2345678910
int my_strlen(const char *str)
{ assert(str != NULL); int count = 0; while (*str != '\0') { count++;
str++;
} return count;}2.不创建计数器,从前向后遍历⼀遍,没有遇到‘\0'就让指针向后加⼀,到最后⼀个字符,记下来地址,然后⽤最后⼀个字符的地址减去起始地址,就得到了字符串的长度。
1
23456789
10int my_strlen(const char *str)
{ char *end = str; assert(str!=NULL); assert(end!=NULL); while (*end != '\0')
{
end++;
} return end - str;}3.不创建计数器,递归实现。
1
234567891011c++求字符串长度
int my_strlen(const char *str)
{
assert(str != NULL); if (*str == '\0') { return 0; }
else
{
return (1 + my_strlen(++str));
}}也可以写成这样:
1234int my_strlen(const char *str){
assert(str != NULL);
return (*str == '\0') ? 0 : (my_strlen(++str) + 1);
}
或者这样:
1234
int my_strlen(const char *str){ assert(str != NULL);
return (*str == '\0') ? 0 : (my_strlen(str+1) + 1);}
这篇关于c 语⾔中获取字符串长度的函数就介绍到这了,需要的朋友可以参考⼀下。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论