C语言中用于计算数组长度的函数 “strlen() ”。

本文介绍两种实现strlen函数的方法:一种使用定义变量的方式,另一种采用递归方式。通过具体代码示例展示了如何获取字符串长度,并对比了标准库函数strlen的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


de> # include <stdio .h >

# include <stdlib .h >



# define MAX_LEN 255



int my_strlen1 ( const char * str ) ;

int my_strlen2 ( char * str ) ;



int main ( )

{

     char str1 [MAX_LEN ] ;

     printf ( "Please input the string you want to strlen:\n" ) ;

     fgets (str1 ,256 , stdin ) ;

     printf ( "Length of %s is %d\n" ,str1 ,my_strlen1 (str1 ) ) ;

    

     char * str2 = "Hello,world!" ;

     printf ( "Length of %s is %d\n" ,str2 ,my_strlen2 (str2 ) ) ;

     exit ( EXIT_SUCCESS ) ;

}

/*strlen,定义变量的写法*/

int my_strlen1 ( const char * str )

{

     int len =0 ;

     while ( * (str +len ) ! = '\0' )

        len + + ;

     return len ;

}

/*strlen,不用变量,递归的写法*/

int my_strlen2 ( char * str )

{

     if ( *str = = '\0' )

         return 0 ;

     else

         return (1 +my_strlen2 ( + +str ) ) ;

} de>

de> /*zj@zj:~/C_parm/string/own_str$ gcc -o strlen strlen.c
 zj@zj:~/C_parm/string/own_str$ ./strlen
 Please input the string you want to strlen:
 hello,world!
 Length of hello,world!
 is 13
 Length of Hello,world! is 12
 *
 *聪明的你也许发现那里有点不对劲了,对一个是12,一个是13!
 其实strlen是不计算最后的字符串结束符'\0'的,那为什么有13呢?
  看输出就知道了,有个换行符号,对就是你输入时的结束符,回车了哦*/
de>
复制去Google翻译 翻译结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值