【C语言】【strlen函数的使用与模拟实现】
1.strlen函数的使用和模拟实现
1.1使用:
size_t strlen(const char* str)
返回类型为无符号整型,参数是字符指针
计算的是字符串中到“\0"之前的字符个数
1.2模拟实现:
方法一:计数器式遍历
#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{int count=0;assert(arr);while(*arr){arr++;count++;}return count;
}int main()
{char arr[]="abcdef";size_t ret=my_strlen(arr);printf("%d\n",ret);return 0;
}
方法二:递归方式实现
#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{assert(arr);if (*arr == '\0')return 0;elsereturn 1 + my_strlen(arr + 1);}
int main()
{char arr[] = "abcdef";size_t ret = my_strlen(arr);printf("%d\n", ret);return 0;
}
方法三:指针减指针
#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{assert(arr);char* p = arr;while(*p!='\0')p++;return p - arr;}
int main()
{char arr[] = "abcdef";size_t ret = my_strlen(arr);printf("%zd\n", ret);return 0;
}