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()函数使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VS2019 Nuget找不到包的问题处理

    VS2019 Nuget找不到包的问题处理

    这篇文章主要介绍了VS2019 Nuget找不到包的问题处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • C语言详解分析进程控制中进程终止的实现

    C语言详解分析进程控制中进程终止的实现

    当进程完成执行最后语句并且通过系统调用 exit() 请求操作系统删除自身时,进程终止。这时,进程可以返回状态值(通常为整数)到父进程(通过系统调用 wait())。所有进程资源,如物理和虚拟内存、打开文件和 I/O 缓冲区等,会由操作系统释放
    2022-08-08
  • 带你粗略了解c++的最大乘积

    带你粗略了解c++的最大乘积

    这篇文章主要为大家详细介绍了C++的最大乘积,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-08-08
  • Qt使用QSoundEffect类实现播放音效或音乐

    Qt使用QSoundEffect类实现播放音效或音乐

    这篇文章主要为大家详细介绍了Qt如何使用QSoundEffect类实现播放音效或音乐功能,文中的示例代码讲解详细,有需要的小伙伴可以参考一下
    2024-12-12
  • C语言中数组常用的一些排序算法小结

    C语言中数组常用的一些排序算法小结

    数组的排序方法有很多,效率也各不相同,下面这篇文章主要给大家介绍了关于C语言中数组常用的一些排序算法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • 浅谈Qt实现HTTP的Get/Post请求

    浅谈Qt实现HTTP的Get/Post请求

    本文主要介绍了浅谈Qt实现HTTP的Get/Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C++学习之命名空间详解

    C++学习之命名空间详解

    C++中,命名空间(namespace)是一个重要的概念。命名空间可以为函数、变量、类等定义作用域,避免与其他定义的名称发生冲突。下面我们就来了解一下如何使用C++命名空间,以及一些常见的操作吧
    2023-04-04
  • C++ string字符串的使用和简单模拟实现

    C++ string字符串的使用和简单模拟实现

    C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数和字符串是分离的,本文给大家介绍了C++ string字符串的使用和简单模拟实现,感兴趣的朋友可以参考下
    2024-06-06
  • C语言switch语句详解

    C语言switch语句详解

    这篇文章主要为大家介绍了C语言switch语句,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • C/C++如何获取当前系统时间的实例详解

    C/C++如何获取当前系统时间的实例详解

    这篇文章主要介绍了 C/C++如何获取当前系统时间的实例详解的相关资料,这里提供了几种实现方法,帮助大家实现这样的功能,需要的朋友可以参考下
    2017-08-08

最新评论