求字符串长度(日志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;
}
小天才公司福利 1874人发布