求字符串长度(日志5)

一、strlen函数

1.strlen函数是C语言标准库中的一个函数,用于计算字符串的长度。这个函数从字符串的起始位置开始计数,直到遇到第一个空字符'\0',然后返回计数器的值。这个长度不包括终止的空字符。

size_t strlen(const char *str);

2.注意:

①其中,size_t是一个无符号整数类型,表示大小(无符号整数类型永远>=0)。

②const char *str是指向字符数组(字符串)的指针,该字符串以空字符'\0'结尾。

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
  char str[100];
  cin>>str;
  cout<<strlen(str);
return 0;
}

3.sizeof与strlen的区别

sizeof是一个编译时计算的操作符,它返回变量声明后所占的内存大小。

strlen是一个运行时计算的函数,它返回字符串的实际长度,不包括空字符。

例如,对于声明char str[20] = "Hello";

sizeof(str)将返回20,因为这是数组分配的内存大小。

strlen(str)将返回5,这是字符串"Hello"的实际长度。

4.自定义实现

strlen函数可以通过多种方式实现,例如使用计数器、递归或指针操作。以下是一些自定义实现strlen函数的示例代码:

// 使用计数器
size_t my_strlen(const char *str) {
size_t count = 0;
while (*str != '\0') {
count++;
str++;
}
return count;
}

// 使用递归
size_t my_strlen_recursive(const char *str) {
if (*str == '\0') {
return 0;
} else {
return 1 + my_strlen_recursive(str + 1);
}
}

// 使用指针
size_t my_strlen_pointer(const char *str) {
const char *p = str;
while (*p != '\0') {
p++;
}
return p - str;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 13:05
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务