strlen
声明:size_t strlen(const char *str)
头文件: C 标准库 - <string.h>
功能:C库中 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
参数:str – 要计算长度的字符串。
返回值:该函数返回字符串的长度。
方法一:
strlen 函数采用递归形式编写
# include <stdio.h>
# include <stdlib.h>
int strlen (char* num) // 形参接受实参传递的数组
{
{ if (*num!='\0') //判断字符串是否结束,'\0'是字符串结束标志
return (1+strlen(num+1)); //采用递归方式,依次数组下标前进一位直到遇到'\0'结束,并返回字符串长度
}
return 0;
}
int main()
{ char arr[]="2kjhhlh56hjk345"; //定义字符串
int str=strlen (arr); //定义变量str接受字符长度
printf("%d\n",str); //输出字符串长度
system("pause");
return 0;
}
方法二:
strlen函数采用一般格式编写
# include <stdio.h>
# include <stdlib.h>
int main()
{
int count=0;
char arr[]="2kjlh5k345";
while (arr[count]!='\0') //判断字符串是否结束,'\0'是字符串结束标志
{
count++; //为了依次数组下标前进一位直到遇到'\0'
}
printf("%d\n",count); //输出字符串长度
system("pause");
return 0;
}
方法三:
strlen函数采用指针形式
# include <stdio.h>
# include <stdlib.h>
# include <assert.h>
int strlen (char* num) // 形参接受实参传递的数组
{
char* p= num;
assert(num!=NULL); //断言,判断指针变量是否为空
while (*p!='\0')
{
p++;
}
return p-num; //指针减指针与数组减数组结果一样,结果是中间元素的个数 (注意无论是数组还是指针相减都应该是在同一个空间,否则无意义)
}
int main()
{ char arr[]="2kjhhlh56hjk345"; //定义字符串
int str=strlen (arr); //定义变量str接受字符长度
printf("%d\n",str); //输出字符串长度
system("pause");
return 0;
}
用不同方法编写了strlen函数,实现求数组长度,同一个功能用不同方法会改变程序的效率,因此可以尝试用不同的方法