strlen函数的3种实现方法

//第一种方法:
#include <stdio.h>
int my_strlen(char *str)
{
 int ret = 0;
 while (*str)
 {
  str++;
  ret++;
 }
 return str;
}
int main()
{
 char *p = "abcdef";
 printf("%d\n", my_strlen(p));
 return 0;
}
第二种方法:
#include <stdio.h>
int my_strlen(char *str)
{
 char *left = str;
 while (*str)
 {
  str++;
 }
 return str - left;
}
int main()
{
 char *p = "abcde";
 printf("%d\n", my_strlen(p));
 return 0;
}

//第三种:
#include<stdio.h>
int my_strlen(const char *str)
{
 if (*str==‘\0‘)
 {
  return 0;
 }
 else
 {
  return 1 + my_strlen(str + 1);
 }
}
int main()
{
 char *p = "abcdef";
 printf("%d\n", my_strlen(p));
 return 0;
}
时间: 2024-12-19 20:41:54

strlen函数的3种实现方法的相关文章

Python Lambda函数的几种使用方法

在进行编程时,一般我们会给一个函数或者变量起一个名字,该名称是用于引用或寻址函数变量.但是有一个低调的函数,你不需要赋予它名字,因此该函数也叫匿名函数.该函数就是Python中的Lambda函数,下面就来为大家解析lambda函数的基本使用方法. 为什么要使用Python Lambda函数? 匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的.因此Python Lambda函数也称为丢弃函数,它可以与其他预定义函数(如filter(),map()等)一起使用.相对于我们

C语言实现strlen函数的几种方法

原文地址:http://www.51testing.com/html/72/n-221172.html 传说常见的一个笔试题:不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数.函数接口声明如下:int strlen(const char *p): 思路分析: 在字符串中通常可以利用最后一个结束符'\0',但此处参数为const,只读,那么我们不能打他的主意. 函数运行过程中不占用内存基本不可能,除非都使用了寄存器."不使用中间变量"只是说程序员不能显示的申

JavaScript函数的4种调用方法详解

在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造器形式.以及apply形式.这里所有的调用模式中,最主要的区别在于关键字 this 的意义,下面分别介绍这个几种调用形式. 本文主要内容: 1.分析函数的四种调用形式2.弄清楚函数中this的意义3.明确构造函对象的过程4.学会使用上下文调用函数 一.函数调用形式 函数调用形式是最常见的形式,也是最

C语言中返回字符串函数的四种实现方法

有四种方式: 1.使用堆空间,返回申请的堆地址,注意释放 2.函数参数传递指针,返回该指针 3.返回函数内定义的静态变量(共享) 4.返回全局变量 其实就是要返回一个有效的指针,尾部变量退出后就无效了. 使用分配的内存,地址是有效 char   *fun() {         char*   s   =   (char*)calloc(100,   sizeof(char*)   );         if   (s)                 strcpy   (   s   ,  

使用哈希算法将数字解析为函数指针-一种架构方法

使用哈希算法将数字解析为函数指针: 这也算是最简单的,不会带有地址冲突的哈希了,哈希函数可以描述为: func = arr[index].func index为输入,根据输入的index,找到其对应的函数指针返回 这种架构虽然简单,但是在做测试时还是非常有用的 比如一种测试有几十项,我可以使用这种架构来实现自动轮巡测试,或者手动交互时输入一个Index,即可以去调用对应的测试函数 另外根据这个代码,还可以学习到函数指针的定义和使用: 定义:typedef int (*FuncPtr)(char

函数的三种定义方法

一.使用关键字  function 方法名称(参数列表) { 方法体和返回值 }         注意1:参数列表中的参数不需要写类型(var),直接写参数名称         注意2:返回值,根据实际需要可以有也可以没有         例1:function test1() { alert("123456");}//定义函数         test1();//调用函数test1()         例2:function add1(a,b) {var sum = a+b; ret

JavaScript中函数的四种调用模式

理解函数的四种调用方法,可以有效的帮助我们分析和理解JavaScript代码.但是经常有人分不清楚或者不理解这四种调用模式,在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:1.函数调用形式 2.方法调用形式 3.构造器调用形式 4.上下文调用形式(apply,call)这里所有的调用模式中,最主要的区别在于关键字 this 的意义.下面分别介绍这几种调用形式. 一.函数调用形式

javascript创建函数的三种方式

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content=

Js函数的三种创建、四种调用

1 // 函数的三种创建方法 2 function one(){ // 函数声明,不属于任何对象,始终默认为全局对象 3 console.log("第一个函数") 4 //默认有一个return this,返回函数中的内容 5 } 6 one(); //必须调用:可以在函数声明前调用(预处理变异机制) 7 8 var fn=function(){ //函数表达式 9 console.log("第二个函数") 10 } 11 fn(); //必须先声明再调用 12 1