C语言中strlen()函数的使用详解

 更新时间:2024年02月01日 14:46:35   作者:不会算法的笨小孩  
strlen函数是用来求字符串长度的函数,这个函数遇到‘\0’就会停止,且这个长度不包含‘\0’,这篇文章给大家介绍了C语言中strlen()函数的使用,感兴趣的朋友一起看看吧

1、strlen函数的各个参数介绍

size_t  strlen (const char* str)

①函数名为strlen

②返回值类型为size_t,这是一个无符号的类型,可能是整型,也可能是长整型。

③函数的参数是一个字符类型的数组,这个数组用char*类型来接收,且这个数组内容不能被修改。

2、strlen函数的作用

strlen函数是用来求字符串长度的函数,这个函数遇到‘\0’就会停止,且这个长度不包含‘\0’。

如,字符串“abcd\0ef”,这个字符串的长度为4,遇到'\0'之后就不再数了,且长度不包含‘\0’。

3、易错处分析

①返回值类型为无符号整数,这就使得我们在使用时会出现一种情况,见代码如下:

#include<stdio.h>
#include<string.h>
int main()
{
	if (strlen("abc") - strlen("abcdef") >= 0)
		printf(">=\n");
	else
		printf("<\n");
	return 0;
}

通过代码,我们可能觉得这个打印的是“<”,但是,strlen函数返回的是无符号整数,无符号整数-无符号整数还是无符号整数,无符号整数是永远>=0的,所以打印的会是">="。运行结果如下:

4、模拟实现

①方法一:计数器

size_t my_strlen1(const char* ch)
{
	size_t count = 0;
	while (*ch)
	{
		count++;
		ch++;
	}
	return count;
}

②方法二:递归

size_t my_strlen2(const char* ch)
{
	if (*ch == '\0')
		return 0;
	return my_strlen2(ch + 1) + 1;
}

③方法三:指针-指针

size_t my_strlen3(const char* ch)
{
	char* p = ch;
	while (*p)
	{
		p++;
	}
	return p - ch;
}

到此这篇关于C语言中strlen()函数的使用详解的文章就介绍到这了,更多相关C语言strlen()函数使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言中sizeof()与strlen()函数的使用入门及对比

    C语言中sizeof()与strlen()函数的使用入门及对比

    这篇文章主要介绍了C语言中sizeof()与strlen()函数的使用入门及对比,同时二者在C++中的使用情况也基本上同理,是需要的朋友可以参考下
    2015-12-12
  • C++产生随机数的几种方法小结

    C++产生随机数的几种方法小结

    本文主要介绍了C++产生随机数的几种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • C++ getcwd函数获取项目运行路径方法详解

    C++ getcwd函数获取项目运行路径方法详解

    在Linux下做QT项目时,需要获取项目的运行路径,于是用getcwd函数进行获取,然后在Windows下进行测试,发现获取到的是程序的项目路径,即代码文件路径,然后再Linux QT中测试,获取到的又是运行路径,这就很纳闷了。经过再三测试,终于发现了原因
    2022-10-10
  • C++运算符重载 成员函数与友元函数详解

    C++运算符重载 成员函数与友元函数详解

    以下是对C++运算符重载 成员函数与友元函数进行了介绍,需要的朋友可以过来参考下
    2013-07-07
  • C语言移除元素的三种思路讲解

    C语言移除元素的三种思路讲解

    这篇文章主要介绍了C语言移除元素的三种思路,总的来说这并不是一道难题,那为什么要拿出这道题介绍?拿出这道题真正想要传达的是解题的思路,以及不断优化探寻最优解的过程。希望通过这道题能给你带来一种解题优化的思路
    2022-10-10
  • C++求逆序对的方法

    C++求逆序对的方法

    这篇文章主要介绍了C++求逆序对的方法,包含了字符串常见的操作方法,是非常实用的技巧,需要的朋友可以参考下
    2014-09-09
  • OpenCV实现简单套索工具

    OpenCV实现简单套索工具

    这篇文章主要为大家详细介绍了OpenCV实现简单套索工具,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • C++中的最小生成树算法超详细教程

    C++中的最小生成树算法超详细教程

    这篇文章主要介绍了C++中的最小生成树算法超详细教程,最小生成树的最著名的算法有两个, 一个是Prim算法, 另一个当然就是Kruskal算法, 接下来, 我将尽我所能的介绍这两个算法, 也算是对自己学习的一个回顾吧,需要的朋友可以参考下
    2023-08-08
  • C++超详细介绍模板

    C++超详细介绍模板

    人们需要编写多个形式和功能都相似的函数,因此有了函数模板来减少重复劳动;人们也需要编写多个形式和功能都相似的类,于是 C++ 引人了类模板的概念,编译器从类模板可以自动生成多个类,避免了程序员的重复劳动
    2022-07-07
  • C++ 使用PrintWindow实现窗口截图功能

    C++ 使用PrintWindow实现窗口截图功能

    这篇文章主要介绍了C++ 如何使用PrintWindow实现窗口截图功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08

最新评论