/*********************************************************
- Copyright (C): 2016
- File name : my_strlen.c
- Author : - Zxn -
- Date : 2016年08月27日 星期六 15时13分55秒
- Description :
* *******************************************************/
#include <stdio.h>
#include <string.h>
#include <assert.h>
int my_strlen1(const char *str)
{
int len = 0;
assert(str != NULL);
//用临时变量做统计,但是每次循环都要++两次
while (*str++ != '\0')
{
len++;
}
return len;
}
int my_strlen2(const char *str)
{
assert(str != NULL);
const char *temp = str;
while (*str++ != '\0');
//直接使用指针减获得长度,每次循环只要+一次,相对上面效率高
return str - temp - 1;
}
int main()
{
char *str = "hello world!";
int len1 = my_strlen1(str);
int len2 = my_strlen2(str);
int len3 = strlen(str);
printf("len1 = %d\n", len1);
printf("len2 = %d\n", len2);
printf("len3 = %d\n", len3);
return 0;
}
[C/C++笔面试]自己实现Strlen,my_strlen最优解
最新推荐文章于 2025-05-27 00:10:11 发布