求字符串长度strlen
在求字符串长度的时候,我们的库函数strlen,就可以完成,但是我们也可以自己设计程序完成这个操作。
下面有几种方法:(以“hello world!”为例)
方法一:利用递归方法实现
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int my_strlen(char* str)
{
if (*str == '\0')
{
return 0;
}
else
{
return (my_strlen(str + 1) + 1);
}
}
int main()
{
char arr[] = "hello world!";
int ret = 0;
ret = my_strlen(arr);
printf("%d\n", ret);
return 0;
}
方法二:利用计数器方法实现
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int my_strlen(char* str)
{
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
int main()
{
char arr[] = "hello world!";
int ret = 0;
ret = my_strlen(arr);
printf("%d\n", ret);
return 0;
}
这种代码的实现是比较容易想到一种方法,也是很容易理解的,
方法三:利用指针方法实现
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int my_strlen(char* s)
{
char* p = s;
while (*p != '\0')
{
p++;
}
return p - s;
}
int main()
{
char arr[] = "hello world!";
int ret = 0;
ret = my_strlen(arr);
printf("%d\n", ret);
return 0;
}
以上是三种不借助库函数实现求解字符串长度的方法。
结果如下: