C语言实现strlen的三种方法小结

  目录

  1.strlen介绍

  strlen --- 求字符串长度

  size_t strlen (const char* str);

  找到字符串后的‘0’为止,不包含‘0’;

  2.如何使用strlen库函数

  int len = strlen(“abcdef”);

  输出结果:6

  char arr[] = { "a" , "b" , "c" , "d" , "e" , "f" };

  int len = strlen(arr);

  输出结果:随机值

  3.三种方法实现strlen 计数器法:

  #include

  #include

  int my_strlen(const char* str)

  {

  int count = 0;

  assert(str != NULL);

  while (*str != '0')//while(*str)

  {

  count++;

  str++;

  }

  return count;

  }

  int main()

  {

  int len = my_strlen("abcdef");

  printf("%d

  ", len);

  return 0;

  }

  递归法:

  #include

  int my_strlen(char *str)

  {

  if (*str != '0')

  {

  return 1 + my_strlen(str + 1);

  }

  return 0;

  }

  int main()

  {

  char arr[] = { "abcdef" };

  int ret = my_strlen(arr);

  printf("%d

  ", ret);

  return 0;

  }

  指针-指针法:

  #include

  int my_strlen(char* str)

  {

  char* start = str;

  char* end = str;

  while (*end!='0')

  {

  end++;

  }

  return end - start;

  }

  int main()

  {

  char arr[] = "bit";

  int len = my_strlen(arr);

  printf("%d

  ", len);

  return 0;

  }

  4.关于strlen返回值

  返回类型为unsigned int 和 int 各有利弊:1.返回int类型 不容易出现错误 2.返回unsigned int类型 说明字符串的长度是没有负数的

  3 - 6 = -3;由于strlen库函数的返回类型是unsigned int,则-3被视为无符号数自然也就比0大;所以容易引发歧义与误解.

  到此这篇关于C语言实现strlen的三种方法小结的文章就介绍到这了,更多相关C语言实现strlen内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  您可能感兴趣的文章: