C语言中用于计算数组长度的函数 “strlen() ”。
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_strgcc−ostrlenstrlen.czj@zj: /Cparm/string/ownstrgcc−ostrlenstrlen.czj@zj: /Cparm/string/ownstr ./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>
更多相关文章
- (lintcode)第5题第k大元素
- (lintcode)第11题二叉查找树中搜索区间
- (lintcode)第15题 全排列(没有重复数字)
- 函数编写n的阶乘的两种方法:循环和递归
- Ubuntu Linux 安装 .7z 解压和压缩文件
- 【递归】JavaScript实现99乘法表的编写(双层for循环与递归方法)
- 2021-04-12:判断二叉树是否是搜索二叉树?
- SQL执行加载顺序
- 【vue】三种获取input值的写法