[C/C++笔面试]自己实现Strlen,my_strlen最优解

来源:互联网 发布:追梦格林体测数据 编辑:程序博客网 时间:2024/06/05 23:12
/*********************************************************-  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;}

这里写图片描述

1 0
原创粉丝点击