strlen函数是包含在 我们现在可以来看一段代码 你觉得会输出什么呢?是'>='吗? 这里我们能看到输出的并不是'>='而是'<',为什么呢? 因为strlen返回的值为无符号数,因此虽然我们主观上认为输出的负数,但其实是一个极大的正数,因而无论怎么样都只会输出<,除非两者相等。 那么我们怎么避免这种情况呢? 1.我们可以直接判断两者大小,也就是将两者放到判断符号两端。 2.我们还可以转换strlen返回值为int型。 直接上代码 3.1 欢迎分享,转载请注明来源:内存溢出
2.无符号数的体现
#include
size_t my_strlen(const char *arr)//防止字符串被更改,当然也可以不加const
{
int count = 0;//定义用来计数的变量
assert(arr != NULL);//防止空指针,此处使用断言,但是别忘记头文件
while (*arr != '3.2递归实现strlen')//循环
{
arr++;//指针后移
count++;//计数器
}
return count;
}
size_t my_strlen(const char *arr)//const可去
{
assert(arr != NULL);//断言,需
if (*arr != '3.3指针减指针')//如果当前不是'
size_t my_strlen(const char *arr)
{
assert(arr != NULL);
char *start = arr;//保存首地址
while (*arr != '')//循环
{
arr++;//指针后移
}
return arr - start;//结束地址减去开始地址就是字符个数
}
',则长度+1,然后递归判断下一个位置是否为'',直至遇到''结束递归;
{
return 1 + my_strlen(arr + 1);
}
else
{
return 0;
}
}
1.什么是strlen函数
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
C++ Primer Plus学习(十一)——类和动态内存分配
上一篇
2022-04-19
《蓝桥杯真题》:2021单片机省赛第二场暨第十三届蓝桥杯赛前模拟试题
下一篇
2022-04-19
评论列表(0条)