模拟strlen函数

目录

  • 1. 循环遍历
  • 2. 递归调用
  • 3. 指针计算

1. 循环遍历

使用循环遍历字符串中的每个字符,直到遇到字符串的结尾标志’\0’。每次遍历时计数器加1,最后返回计数器的值即可。

int my_strlen(const char* str) 
{
   int len = 0;
   while (str[len] != '\0') 
   {
      len++;
   }
   return len;
}

2. 递归调用

使用递归函数来实现字符串长度的计算。当字符串为空或者遇到结尾标志’\0’时,返回0;否则将字符串缩减一个字符传递给递归函数,返回值加上1

int my_strlen(const char* str) 
{
   if (*str == '\0') 
   {
      return 0;
   } 
   else 
   {
      return 1 + my_strlen(str + 1);
   }
}

3. 指针计算

使用指针进行计算,初始化一个指针指向字符串的首地址,并且遍历整个字符串,直到遇到结尾标志’\0’。每次循环指针向后移动一个字符的大小,最后返回指针的偏移量。

int my_strlen(const char* str) 
{
   const char* ptr = str;
   while (*ptr != '\0') 
   {
      ptr++;
   }
   return ptr - str;
}

以上是三种常见的模拟strlen函数的方法,每种方法都可以正确计算出字符串的长度。可以根据实际情况选择其中一种方法来使用

你可能感兴趣的:(c语言,开发语言,后端)