C语言实现strlen的三种方法小结
作者:Hello_World_213
本文主要介绍了C语言实现strlen的三种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1.strlen介绍
strlen --- 求字符串长度
size_t strlen (const char* str);
找到字符串后的‘\0’为止,不包含‘\0’;
2.如何使用strlen库函数
int len = strlen(“abcdef”);
输出结果:6
char arr[] = { "a" , "b" , "c" , "d" , "e" , "f" }; int len = strlen(arr);
输出结果:随机值
3.三种方法实现strlen 计数器法:
#include<stdio.h> #include<assert.h> int my_strlen(const char* str) { int count = 0; assert(str != NULL); while (*str != '\0')//while(*str) { count++; str++; } return count; } int main() { int len = my_strlen("abcdef"); printf("%d\n", len); return 0; }
递归法:
#include<stdio.h> int my_strlen(char *str) { if (*str != '\0') { return 1 + my_strlen(str + 1); } return 0; } int main() { char arr[] = { "abcdef" }; int ret = my_strlen(arr); printf("%d\n", ret); return 0; }
指针-指针法:
#include<stdio.h> int my_strlen(char* str) { char* start = str; char* end = str; while (*end!='\0') { end++; } return end - start; } int main() { char arr[] = "bit"; int len = my_strlen(arr); printf("%d\n", len); return 0; }
4.关于strlen返回值
- strlen库函数的返回值是size_t,其含义是unsigned int,即为无符号数;
- 我们自己实现库函数strlen的my_strlen的返回值则是int,即为有符号数.
返回类型为unsigned int 和 int 各有利弊:1.返回int类型 不容易出现错误 2.返回unsigned int类型 说明字符串的长度是没有负数的
3 - 6 = -3;由于strlen库函数的返回类型是unsigned int,则-3被视为无符号数自然也就比0大;所以容易引发歧义与误解.
到此这篇关于C语言实现strlen的三种方法小结的文章就介绍到这了,更多相关C语言实现strlen内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!