自己实现strlen
时间: 2024-01-01 07:02:38 浏览: 99
实现strlen函数的方法有很多种,但基本的思路就是遍历字符串,直到遇到字符串结束符'\0',统计遍历的次数就是字符串的长度。
我们可以用循环来逐个遍历字符串中的每一个字符,直到遇到'\0'为止,然后统计循环的次数就是字符串的长度。具体实现如下:
```c
int my_strlen(const char* str) {
int len = 0;
while (str[len] != '\0') {
len++;
}
return len;
}
```
其中,参数`str`是指向字符串的指针,`len`用来记录遍历的次数,初始化为0,然后进行循环遍历,每次遇到非结束符'\0',`len`就加1,直到遇到'\0'为止,然后返回`len`的值就是字符串的长度。
这样,我们就实现了自己的strlen函数。当然,实际的strlen函数可能还会考虑到一些特殊情况,比如输入参数为空指针或者字符串过长导致整数溢出等问题,这些都需要在实际使用中进行额外的处理。
相关问题
递归实现strlen
递归实现strlen的方法是通过不断地调用函数本身来实现字符串长度的计算。具体实现方法如下:
```
int stringlenth(char* string) {
if ((*string) != '\0') {
return 1 + stringlenth(string + 1);
} else {
return 0;
}
}
```
这个函数首先判断当前字符是否为'\0',如果不是,则返回1加上调用函数本身并传入下一个字符的地址;如果是,则返回0。这样,每次调用函数本身时,都会将字符串的指针向后移动一位,直到遇到'\0'为止。最终返回的值就是字符串的长度。
另外,引用和引用也提供了递归实现strlen的方法,它们的实现方式与上述方法类似,只是细节上有所不同。
实现strlen函数
以下是三种实现strlen函数的方法:
方法一:遍历字符串
```c
int strlen1(const char* str) {
int len = 0;
while (str[len] != '\0') {
len++;
}
return len;
}
```
方法二:使用指针
```c
int strlen2(const char* str) {
const char* p = str;
while (*p != '\0') {
p++;
}
return p - str;
}
```
方法三:调用标准库函数
```c
#include <string.h>
int strlen3(const char* str) {
return strlen(str);
}
```