首页
学习
活动
专区
圈层
工具
发布

c语言strlen函数的模拟实现

1.strlen函数介绍 strlen的功能: 函数返回字符串str 的长度( 即空值结束符之前字符数目)。...这里的空值结束符号就是 ‘\0’ 在c语言中,字符串的末尾通常会自动添加 ‘\0’ 作为结束标志 eg: 如果是char str[] = {‘a’,‘b’,‘c’,‘d’,‘e’};则不会添加 ‘...; printf("%zd\n",strlen(str)); printf("%zd\n",sizeof(str)); } 输出结果如下图所示: 我们会发现 : sizeof(str); 比strlen...(str) 的结果多一 这是因为strlen()函数不统计’\0’ ,而sizeof统计’\0’ (因为统计的是整个数组的大小) 在监视窗口里我们也可以证实‘\0’的存在: 下面是strlen()...函数的官方解释: 2.strlen()函数的模拟实现 (1)循环计数法 我们在了解了strlen()函数的功能后,很容易想到利用 指针传递字符串地址,然后判断是否 == ‘\0’的操作来进行计数,代码如下

56810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言练习之模拟实现strlen

    前言 模拟实现库函数strlen,加深对这个函数的理解。 一、思路 strlen函数是用来计算一个字符串中字符的个数,从第一个字符进行计算,当遇到'\0'时才回停止计算。...非递归 源代码 size_t my_strlen(char* str) { size_t count = 0; while (*str !...abcdefghij" }; printf("%u\n", my_strlen(arr)); return 0; } 运行截图 ---- 总结 以上就是今天要讲的内容,本文简单的介绍了用C语言模拟实现...strlen函数的思路,还进一步展示了代码的运行结果验证了作者的思路。...本文的作者也只是一个正在学习C语言等编程知识的萌新,若这篇文章中有哪些不正确的内容,请在评论区向作者指出(也可以私信作者),欢迎大佬们指点,也欢迎其他正在学习C语言的萌新和作者进行交流。

    79630

    【C语言】strlen、strcpy字符串函数详解

    一、字符串函数 1、strlen (1) 简介 strlen是 C 标准库提供的字符串处理函数,其功能是计算字符串中从起始地址到第一个空字符(’\0’)的字节数 头文件 注意:这里的...size_t strlen ( const char * str ); (2)返回值(易错) 返回值为无符号整数类型 size_t 以下是错误示范: #include #include... int main() { if (strlen("abc") - strlen("abcdef") >= 0) printf(">="); else printf("...因为 strlen返回值为无符号整数类型 size_t 而两无符号整数类型相减结果也是无符号整数类型 理论上是远大于0的 所以 要小心使用strlen的返回值 (3)模拟实现strlen函数...模拟函数,自己写一个strlen函数 其中有很多方法 这里我用到了函数递归 使用该方法不引入新变量 #include int my_strlen(const char* ch)

    10410

    C++中strlen()和sizeof()的区别

    参考链接: C++ strlen() 一、sizeof  sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等...二、strlen     strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。     ...strlen只关心存储的数据内容,不关心空间的大小和类型。     ...2.sizeof是算符,strlen是函数。  3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。 ...操作符不能返回动态地被分派了的数组或外部的数组的尺寸  9.数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址,  如:  fun(char [8])  fun(char [])  都等价于 fun(char *)  在C+

    1.3K20

    透视C语言:sizeof与strlen的隐秘世界

    大家好,今天我们来探讨一下C语言中两个常用的函数:sizeof和strlen。虽然它们都与字符串有关,但它们的用途和实现原理却大相径庭。...2. strlen 定义: strlen是一个函数(所需的头文件为),用于计算字符串的实际长度,不包括结尾的空字符(‘\0’)。...函数原型: size_t strlen(const char *str); 参数类型: strlen的参数必须是一个以空字符(‘\0’)结尾的字符串。...例如: strlen("hello world"); // 返回11,不包括结尾的空字符 strlen统计的是从参数str中这个地址开始,向后查找\0字符之前的字符个数。...二、对比 sizeof strlen sizeof是操作符 strlen是库函数 sizeof计算操作数所占内存的大小,单位是字节 strlen求字符串长度,统计的是\0之前字符的个数 不关注内存中存放什么数据

    20410

    【C 语言】C 字符串 ( 表示方法 | strcpy | strcat | strlen | strcmp )

    文章目录 C 字符串表示方式 C 字符串 拷贝 ( strcpy ) C 字符串 拼接 ( strcat ) C 字符串 长度获取 ( strlen ) C 字符串 对比 ( strcmp ) C...---- C 字符串 长度获取 ( strlen ) C 字符串 长度获取 ( strlen ) : 1.方法参数 : 传入要获取长度的字符串 , 可以是字符数组 , 也可以是字符指针类型 ; 2....char * string_c_len3 = "hello"; //① 字符数组长度 , 测量从开始到 '\0' 的长度, 不包括 '\0' int len1 = strlen(string_c_len...); //② 指定大小的字符数组长度 , 结果不是指定的大小的值 , 获取的是实际字符串长度 int len2 = strlen(string_c_len2); //③ 指针表示的字符串 , 其获取的大小是实际字符串大小..., 不包含自动添加的 '\0' int len3 = strlen(string_c_len3); //④ 打印 三个字符串大小 cout << "len1 : " << len1

    98520

    【C语言】strlen()函数(字符串长度计算函数)

    目录 一.strlen函数简介 我们先来看看cplusplus网站对strlen函数的介绍: 下面是中文翻译: 也即,当你向strlen函数传递一个字符串名作为其参数时,strlen函数会返回字符串的长度...需要注意的是: 1.使用strlen函数需要包含头文件 2.使用strlen函数计算出的字符串长度是字符串开头字符到终止空字符(也即'\0')之间的字符数。...(有关第二点在本文的第二部分会进行实操案例演示) 二.strlen函数的使用 当我们已经了解了关于strlen函数的基本内容时,就可以试着使用strlen函数求字符串长度了,下面在vs2022环境中为大家演示一下...strlen(arr)); return 0; } 上述代码就是一个简单的使用strlen函数求字符串长度的案例,同时我们并没有定义数组的大小,放在编译器中的调试结果为5。...%d\n",strlen(arr)); return 0; } 运行结果如下,同样为5: 由以上两个例子可见使用strlen函数求字符串长度的结果与字符串的定义大小无关。

    1.9K10

    【安全函数】从 strlen 到 strlen_s:C 语言字符串长度计算的安全进化

    在 C 语言发展历程中,字符串操作的安全性始终是开发者关注的焦点。strlen () 作为经典的字符串长度计算函数,虽高效却因缺乏边界检查埋下安全隐患。...C11 标准引入的 strlen_s () 函数,正是为解决这些安全问题而生。...1.2 与 strlen () 的本质区别 特性 strlen() strlen_s() 标准 C89 及以后 C11 及以后 参数 仅字符串指针 字符串指针 + 最大检查范围 空指针处理 未定义行为..., 3); // 安全行为:返回0(3字节内无'\0') 二、函数原型 2.1 strlen_s () 的标准原型 C11 标准定义的 strlen_s () 原型如下: size_t strlen_s.../string_demo strlen_s () 作为 C11 引入的安全函数,通过增加边界检查和错误处理,解决了 strlen () 长期存在的安全隐患。

    9510
    领券