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小时内删除。