1.最常用的方法是创建一个计数器,判断是否遇到‘\0’,不是'\0'指针就往后加一。

int my_strlen(const char *str)
{assert(str != NULL);int count = 0;while (*str != '\0'){count++;str++;}return count;
}

2.不创建计数器,从前向后遍历一遍,没有遇到‘\0’就让指针向后加一,找到最后一个字符,记下来地址,然后用最后一个字符的地址减去起始地址,就得到了字符串的长度。

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

3.不创建计数器,递归实现。

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

也可以写成这样:

int my_strlen(const char *str)
{assert(str != NULL);return (*str == '\0') ? 0 : (my_strlen(++str) + 1);
}

或者这样:

int my_strlen(const char *str)
{assert(str != NULL);return (*str == '\0') ? 0 : (my_strlen(str+1) + 1);
}

												

求字符串长度的函数的几种实现方法相关推荐

  1. c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...

    C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...

  2. C语言中求字符串长度的函数my_strlen()的几种实现方法

    C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) {asse ...

  3. C语言试题三十三之比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。

    1. 题目 请编写函数function,它的功能是:比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串.若两个字符串长度相同,则返回第一个字符串. 2 .温馨提示 ...

  4. 25.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字 符串。

    25.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串.若两个字符串长度相同,则返回第一个字 符串. 例如,输入:beijing ...

  5. 编写一个不创建临时变量求字符串长度的函数

    #include<stdio.h> #define N 20 int Strlen(const char* str) {if (*str != '\0')return 1 + Strlen ...

  6. Sql字符串分组Split函数的两种实现方法

    在给文章加自定义标签时,需要在存储过程中对输入的字符串按照","字符分割成一个字符数组.但是Sql中没有实现字符串分组的Split方法.因此就需要编写一个自定义的Split函数.我 ...

  7. 求字符串长度【三种解题思路】

    文章目录 一.递归法 二.指针减指针法 三.计数器法   题目:模拟实现一个strlen函数,也就是求字符串长度的函数. 一.递归法 #include<stdio.h> #include& ...

  8. 三种方法求字符串长度

    在求字符串长度时,第一时间会想到运用strlen这个函数,但对于初学者来说,除了掌握这个函数之外,还应当自己写函数来实现相似的功能. 接下来我列举了三种方法来求字符串长度,供大家参考: (1)运用st ...

  9. 求字符串长度的三种方法(C语言)

    如何求字符串的长度? 首先要明白字符串存储的原理. 字符串存储时,是以'\0'结尾,这个就可以作为判断字符串结尾的一个条件. 接下来,只要有字符串的首元素地址,就可以解决求字符串长度的问题啦! 第一种 ...

  10. 【C语言】模拟实现库函数 strcpy(复制字符串内容) 与 strlen(求字符串长度)

    前言:对于库函数的使用,我们不仅要会使用方法,更要知晓使用原理,而知晓使用原理最好的方法就是模拟相应库函数的使用. 今天我们就来模拟 strcpy(复制字符串内容) 与 strlen(求字符串长度)这 ...

最新文章

  1. Everest 0.6 设置ADSL上网
  2. Windows Server入门系列34 用户配置文件
  3. C与C++ 无参函数的区别
  4. anaconda安装后只有几个文件,大量文件缺失,开始栏里没有图标的解决方法
  5. Yuhao and a Parenthesis
  6. java父类子类顺序_java父类子类內部程序的执行顺序
  7. Queue Explorer过期处理
  8. 1602: [Usaco2008 Oct]牧场行走
  9. 中柏平板触摸驱动_华北工控 | 工业平板电脑在医院自助设备中的广泛应用
  10. 第七届蓝桥杯省赛--方格填数--DFS或全排列
  11. 三点顺序(计算几何入门)
  12. FX5 C的编程语言,三菱FX5-C32EX/D手册FX5-C32EX/D编程手册 - 广州凌控
  13. Cocos Creator 如何在 VideoPlayer 上面放置 UI 控件
  14. oppo 系列手机刷机教程
  15. 电子电路计算机仿真应用,电子电路计算机仿真技术
  16. 2021年游戏项目的十大编程语言
  17. matlab小波变换、离散小波变换函数使用
  18. 系统软件项目成本构成及估算方法
  19. 计算机 无法 访问共享网络打印机,共享打印机无法连接怎么办解决方案
  20. 计算机中应用管理在哪里,应用程序管理器在哪里

热门文章

  1. NAT 穿透是如何工作的:技术原理及企业级实践
  2. python爬去新浪微博_Python爬取新浪微博热搜榜
  3. python宣传视频 抖音_python下载抖音无水印视频
  4. ant design入门_Umi + ant Design Pro最简单的入门教程(一)初
  5. mysql数据库定时清理数据
  6. visionman-visionpro培训大纲
  7. 小提琴1234567位置图解_小提琴的指法图
  8. win10怎么用计算机二进制,Win10计算器怎么算二进制_win10计算器二进制使用教程...
  9. 参考文献标准格式总结
  10. java在线查看PDF