不用strlen求字符串长度
时间: 2023-10-14 16:11:12 浏览: 151
除了使用 `strlen()` 函数,还有其他方法可以求字符串的长度:
1. 使用循环遍历字符串,计算字符个数直到遇到字符串结束符 '\0'。
```c
int length(char *str) {
int count = 0;
while (*str != '\0') {
count++;
str++;
}
return count;
}
```
2. 使用指针减法计算字符个数,指针减法的结果为两个指针之间相差的元素个数。
```c
int length(char *str) {
char *p = str;
while (*p != '\0') {
p++;
}
return (int)(p - str);
}
```
这两种方法都不需要调用 `strlen()` 函数,可以自己实现一个字符串长度计算函数。
相关问题
c语言strlen求字符串长度
在C语言中,可以使用strlen函数来求字符串的长度。但是,strlen函数只能用于求以'\0'结尾的字符串的长度。如果字符串中没有'\0',那么strlen函数会一直向后读取内存,直到遇到'\0'为止,这样可能会导致程序崩溃。因此,我们可以自己编写一个函数来求字符串的长度。常见的方法有三种:普通版、指针运算版和递归版。
1.普通版:
这种方法比较简单,就是使用一个计数器,遍历字符串中的每一个字符,直到遇到'\0'为止。代码如下:
int my_strlen(char* str) {
int count = 0;
while(*str != '\0') {
count++;
str++;
}
return count;
}
2.指针运算版:
这种方法利用指针-指针可以求得字符串的长度。我们定义一个指针start指向字符串的首地址,然后遍历字符串中的每一个字符,直到遇到'\0'为止。最后,我们用当前指针str减去起始指针start,就可以得到字符串的长度。代码如下:
int my_strlen(char* str) {
char* start = str;
while (*str != '\0') {
str++;
}
return str - start;
}
3.递归版:
这种方法使用递归的思想,每次递归调用函数时,将指针向后移动一位,直到遇到'\0'为止。代码如下:
int my_strlen(char* str) {
if (*str == '\0')
return 0;
else
return 1 + my_strlen(str + 1);
}
C语言strlen求字符串长度
你可以使用C语言中的strlen函数来计算字符串的长度。strlen函数位于string.h头文件中,它接受一个以null结尾的字符串作为参数,并返回字符串的长度(不包括null字符)。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World";
int length = strlen(str);
printf("字符串的长度为:%d\n", length);
return 0;
}
```
在这个示例中,我们声明了一个名为str的字符数组,并将其初始化为"Hello World"。然后,我们使用strlen函数计算字符串长度,并将结果存储在名为length的整型变量中。最后,我们使用printf函数将字符串的长度打印出来。
当你运行这段代码时,它会输出:
```
字符串的长度为:11
```
这表明字符串"Hello World"的长度为11个字符。请注意,strlen函数不包括null字符在内,所以字符串的实际长度是12个字符(包括null字符)。
阅读全文