求字符串长度

一、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;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务