目录

方法一:调用内置函数strlen求字符串长度

方法二:创建临时变量计算字符串长度

方法三:不创建临时变量计算字符串长度(递归)

方法四:指针减指针求字符串长度


我们知道C语言是自带内置函数strlen求字符串长度的,但其实我们也可以自己编写函数来求字符串长度

方法一:调用内置函数strlen求字符串长度


#include <stdio.h>
#include <string.h>int main()
{char s[] = "abc";int len = strlen(s);printf("%d ",len);return 0;
}

方法二:创建临时变量计算字符串长度


首先,我们自定义函数my_strlen求字符串长度

在my_strlen中用count统计字符的个数,我们传入的char类型的指针str,对他进行解引用(*str)得到str指向的值,循环判断(*str)是否等于‘\0’,如果不等,则count+1,str指向下一个字符;如果相等,则说明遍历到了字符串结尾,最后返回count,也就是统计的字符的个数。

代码实现如下:

#include <stdio.h>int my_strlen(char* str)
{int count = 0; //计数while(*str != '\0'){count++;str++;}return count;
}int main()
{char s[] = "abc";int len = my_strlen(s);printf("%d ",len);return 0;
}

方法三:不创建临时变量计算字符串长度(递归)


递归的主要思想:大事化小

使用递归的两个必要条件:

1、存在限制条件,当满足这个限制条件的时候,递归便不再继续

2、每次递归调用之后越来越接近这个限制条件


计算字符串(abc)长度的递归思想:

代码实现如下:

#include <stdio.h>int my_strlen(char* str)
{if(*str != '\0'){return 1 + my_strlen(str+1);}elsereturn 0;
}int main()
{char s[] = "abc";int len = my_strlen(s);printf("%d ",len);return 0;
}

方法四:指针减指针求字符串长度


两个指针相减,得到的是两个指针之间元素的个数

根据这个特性,我们可以有一种新的求字符串长度的思路

代码实现:

#include <stdio.h>int my_strlen(char* str)
{char* start = str;while(*str){str++;}return str - start;
}int main()
{char s[] = "abc";int len = my_strlen(s);printf("%d ",len);return 0;
}

(C语言)求字符串长度的四种方法相关推荐

  1. c语言求字符串长度的三种方法(部分略微优化)

    求字符串的长度,很多人都会直接想到用strlen函数,只需要头文件string.h就可以很轻松的实现,但对于我们c语言的初学者,也应该尝试用其他方法来进行实现,除了strlen函数外有三种方法可供参考 ...

  2. C语言-求字符串长度的几种方法

    1.使用库函数<string.h> #include <stdio.h> #include <string.h> int main() {char arr[] = ...

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

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

  4. C++求字符串长度的两种方法

    针对于string类型的,可以采用strlen 针对于wstring类型的,可以采用_tcslen方法 实例代码: //字符串测试Unicode和ansi void strControl() {std ...

  5. 【c语言】模拟strlen函数求字符串长度的三种方法

    1.借助中间变量(常规方法) #include<stdio.h> int my_strlen(char* str)//接收了数组首元素的地址 {int count = 0;while (* ...

  6. 用C语言求最大公约数的4种方法

    C语言求最大公约数的四种方法如下: 辗转相除法:通过不断地交换两个数,使较大的数除以较小的数,最后得到的余数即为最大公约数. 更相减损术:通过不断地让两个数减去较小的数,最后得到的结果即为最大公约数. ...

  7. java实现c语言的函数_C语言实现返回字符串函数的四种方法

    前言 C语言返回字符串函数共有四种方式,分别如下: 使用堆空间,返回申请的堆地址,注意释放 函数参数传递指针,返回该指针 返回函数内定义的静态变量(共享) 返回全局变量 下面来看看详细的介绍 其实就是 ...

  8. (转)Shell中获取字符串长度的七种方法

    Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...

  9. c语言数组最大可定义多少位_C语言求数组的最大值三种方法

    /* 黄哥Python培训 黄哥所写*/#include int maxValue(int* arr, int n);int maxRecursionValue(int* arr, int n);in ...

  10. Shell脚本中计算字符串长度的5种方法

    这篇文章主要介绍了Shell脚本中计算字符串长度的5种方法,来自于个人Shell脚本长期的开发经验,需要的朋友可以参考下 有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前S ...

最新文章

  1. 栈的输出_栈和队列--十进制转化为二进制
  2. 嵌入式培训学习历程第三天
  3. python自带time库吗_Python的内置库time
  4. android oreo 开机动画,Android O添加了一个 Splash Screen API帮助简化启动屏制作
  5. 外媒:日本和芬兰将合作开发6G技术 诺基亚将参与其中
  6. python查看函数参数快捷键_python查看函数源代码快捷键_pycharm中查看源码的快捷键...
  7. Python扩展库安装工具pip的高级用法
  8. 基于源码剖析nodejs模块系统
  9. 关于collectionView的一些内容
  10. 清除VS2005中的最近项目
  11. 董付国python题库_1000道Python题库系列分享四(40道)
  12. 机器视觉培训教程-相机的基本知识
  13. python基础-craps赌牌游戏
  14. safari快捷图标不见了_桌面图标不见了怎么办?这里有妙招
  15. html有序列表标签圆点,什么是无序列表、有序列表、定义列表?html列表标签学习笔记...
  16. python中idle什么意思_始学Python:IDLE环境介绍
  17. DB2相关数据库命令
  18. 《Microduino实战》——1.3 开源软件
  19. win8安装PCL1.8.1配置VS2017
  20. Linux安装deb软件包

热门文章

  1. OpenCV的Mat格式和IplImage格式的使用
  2. Linux下PCIE设备分析软件
  3. 乐高叉车wedo教案_乐高 WEDO自带12个活动教学参考书.pdf
  4. Dreamweaver简单网页——HTML+CSS小米官网首页的设计与实现
  5. 获取文件哈希值_Java 获得文件的指纹
  6. python国际象棋游戏_国际象棋版AlphaZero出来了 还开源了Keras实现
  7. cad沿线插入块 lisp_我有一组数有十几万个坐标点,如何利用lisp程序快速导入CAD中,并可以快速处理!...
  8. 【开发】MFC到Delphi的皮肤移植
  9. 2000坐标系xy坐标几位_2000坐标系(2000坐标系x和y坐标几位数)
  10. python和r语言对比_Python和R语言之分析对比