模拟实现 strlen(字符串长度) --浅谈C语言

打印 上一主题 下一主题

主题 838|帖子 838|积分 2514

# 字符串长度 - strlen()
描述

C 库函数 size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
声明

下面是 strlen() 函数的声明。
  1. size_t strlen(const char *str)
复制代码
参数


  • str -- 要计算长度的字符串。
返回值

该函数返回字符串的长度。
模拟实现

1. 计数器方式
  1. int my_strlen(const char * str)
  2. {
  3.     int count = 0;
  4.     while(*str) //走到'\0'为止
  5.     {
  6.         count++;
  7.         str++;
  8.     }
  9.     return count;
  10. }
复制代码
2.递归方式 -- 无临时变量
  1. int my_strlen(const char * str)
  2. {
  3.     if(*str == '\0')//走到'\0'为止
  4.         return 0;
  5.     else
  6.         return 1+my_strlen(str+1);
  7. }
复制代码
3.指针计算方式
  1. int my_strlen(char *s)
  2. {
  3.       char *p = s;
  4.       while(*p != ‘\0’ )//走到'\0'为止
  5.              p++;
  6.       return p-s;
  7. }
复制代码
sizeof() 和 strlen() 的主要区别


  • sizeof() 是一个运算符,而 strlen() 是一个函数。
  • sizeof() 计算的是变量或类型所占用的内存字节数,而 strlen() 计算的是字符串中字符的个数。
  • sizeof() 可以用于任何类型的数据,而 strlen() 只能用于以空字符 '\0' 结尾的字符串。
  • sizeof() 计算字符串的长度,包含末尾的 '\0',strlen() 计算字符串的长度,不包含字符串末尾的 '\0'。
sizeof() 函数是一个运算符而不是函数,用于计算一个类型或变量所占用的内存字节数。可以用它来获取任何类型的数据的字节数,包括基本数据类型、数组、结构体、共用体等等。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表