一、strlen函数
在使用strlen函数之前必须加头文件 #include <string.h>
strlen函数的用途:是计算字符串的长度,从字符串首地址开始,计算到'\0'之前字符串的长度。
strlen函数的定义:
size_t strlen (const char* str);
函数strlen()接收的参数:const char* str —————— 字符指针。
函数strlen()返回类型:size_t —————— 无符号整型,也就是(unsigned int)。
const:const它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。可以定义const常量,具有不可变性
char*:用来接收字符类型的指针。
size_t: 使用size_t数据类型:这里返回计算的字符串长度,长度最小值为0,不可能为负数
二、strlen函数的实例应用
第一种类型:
#include<stdio.h>
#include<string.h>
int main()
{
char arr[100] = "abasdasfaff";
int ret = strlen(arr);
printf("字符串长度为:%d\n",ret);
return 0;
}
arr字符数组中存储的是一个字符串,那么strlen遍历到字符 'f'时,再向后遍历,就会遇到'\0',从而终止遍历。此时strlen停止遍历,返回字符个数:11;
第二种类型:
#include<stdio.h>
#include<string.h>
int main()
{
char arr[] = {'a','b','c','d','e'};
int ret = strlen(arr);
printf("字符串长度为:%d\n",ret);
return 0;
}
此时会给出一个随机数。
字符 'a'、'b'、 'c' 、'd' 、'e' 五个字符依次存储在arr的字符数组中,并没有存储'\0',所以'e'字符后面存储的内容不是'\0'。而strlen函数只有遇到'\0'时才停止,此时就会返回一个随机值。
三、strlen函数模拟实现
#include <stdio.h>
#include <assert.h>
int my_strlen(const char* p)//接收字符串
{
assert(p != NULL);
int count = 0;//创建变量,统计字符串长度
while (*p != '\0')//循环判断
{
count++;
p++;
}
return count;
}
int main()
{
char arr[] = "abcdefghig";
int ret = my_strlen(arr);//自定义函数计算字符串长度
printf("字符串arr的长度为:%d\n", ret);
return 0;
}
这里需要注意 :宏 assert 的作用是对条件进行判断,assert函数在判断为'真'后并不会有任何操作,反而是在判断为'假'后,会终止程序,并给出一条错误信息。调用asset函数需要包含头文件<assert.h>。
今天先介绍strlen函数,往后博主还会继续更新,望各位大佬留个关注多支持支持。
有不足之处还望批评指正。