C语言指针减指针写strlen
时间: 2023-10-26 08:28:13 浏览: 33
在C语言中,可以通过指针相减的方式来实现字符串长度的计算,类似于strlen函数的实现。你可以定义一个字符型指针,并将其指向字符串的起始位置,然后使用另一个指针指向字符串的结束位置,最后两个指针相减得到字符串的长度。下面是一个示例代码:
```c
#include <stdio.h>
int main() {
char str[] = "Hello, World!";
char *ptr = str; // 指向字符串起始位置的指针
char *end_ptr = str; // 指向字符串结束位置的指针
// 将end_ptr指向字符串的结束位置
while (*end_ptr != '\0') {
end_ptr++;
}
// 计算字符串长度
int length = end_ptr - ptr;
printf("字符串长度:%d\n", length);
return 0;
}
```
在上述代码中,我们定义了一个字符串`str`,并创建了两个指针`ptr`和`end_ptr`,分别指向字符串的起始位置和结束位置。然后通过循环将`end_ptr`移动到字符串的结尾处,最后计算两个指针之间的距离,即可得到字符串的长度。运行上述代码,输出结果为`13`,表示该字符串的长度为13。
需要注意的是,上述代码仅适用于以空字符(`'\0'`)结尾的字符串。对于不以空字符结尾的字符串,这种计算方式将不正确。此外,上述代码也没有对指针越界进行检查,因此在实际开发中需要注意确保指针操作的安全性。