这里简单介绍以下求字符串的三种方法
1、计数器
2、递归
3、指针减指针
第一种:计数器
使用my_strlen函数并创建临时变量,具体代码如下
#include<stdio.h>
#include<assert.h>
int my_strlen(char* str)
{
int count = 0;
assert(str);
while (*str != '\0')
{
count++;
str++;
}
return count;
}
int main()
{
char arr[] = "abcfvdg";
int len = my_strlen(arr);
printf("%d", len);
return 0;
}
执行结果
第二种方式:当题目要求不创建临时变量时,可采用递归的方式,具体看下面的代码
int my_strlen(char* str)
{
assert(str);
if (*str != '\0')
return 1 + my_strlen(str + 1);
else
return 0;
}
这时候只是函数内部的内容变动,主函数不变
运行结果还是依旧是7
第三种方式:指针-指针
#include<stdio.h>
#include<assert.h>
int my_strlen(char* str)
{
assert(str);//防止指针为空指针
char* p = str;
while (*p != '\0')
{
p++;
}
return p - str;
}
int main()
{
char arr[] = "abcfvdg";
int len = my_strlen(arr);
printf("%d", len);
return 0;
}
结果还是7
以上就是计算一个字符串长度的三种方法了