strlen(int* )
时间: 2023-08-15 08:08:00 浏览: 70
strlen函数用于计算一个字符串的长度,参数为指向字符串首地址的指针,类型为char*。而你给出的参数类型为int*,不符合函数要求,因此无法使用strlen函数。如果你想计算一个int类型的数组的长度,可以通过以下方式实现:
```c++
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(int);
```
其中,sizeof操作符用于计算arr数组所占的字节大小,除以int类型的字节数4,得到数组元素个数5,即为数组长度。
相关问题
用strlen计算由int*强转位char*
使用 `strlen` 函数计算由 `int*` 强制转换为 `char*` 后的字符串长度是不可行的,因为 `strlen` 函数会计算遇到的第一个空字符 `'\0'` 前的字符数量,但是在 `int*` 强制转换为 `char*` 后,每个 `int` 都会被视为一个 `char`,因此在转换后的字符数组中,很可能会出现多个连续的 `'\0'` 字符,这会导致 `strlen` 函数提前结束计算,得到的字符串长度会偏小,从而产生错误的结果。如果需要计算由 `int*` 强制转换为 `char*` 后的字符串长度,应该使用其他方式来进行计算。
strlen(*p);
在C语言中,`strlen()` 函数用于计算一个字符串的长度,即该字符串中的字符数(不包括空字符`\0`)。`strlen()` 函数的原型如下:
```cpp
size_t strlen(const char *str)
```
参数 `str` 是一个指向以 null 结尾的字符串的指针。函数会遍历字符串,直到遇到 null 字符为止,并返回字符串的长度。
然而,你提到的 `strlen(*p)` 表达式是无效的。因为 `strlen()` 函数接受一个指向字符串的指针作为参数,而 `*p` 只是一个字符,不是指针。所以你需要将 `*p` 改为指向字符串的指针。
下面是一个示例代码片段,展示了如何使用 `strlen()` 函数来计算字符串的长度:
```cpp
#include <cstdio>
#include <cstring>
int main() {
const char *str = "Hello, World!";
size_t len = strlen(str);
printf("Length of the string: %zu\n", len);
return 0;
}
```
在这个示例中,字符串 `"Hello, World!"` 的长度为 13(不包括最后的 null 字符)。`strlen()` 函数返回的长度值会被打印出来。
请注意,如果要计算一个指针数组中每个字符串的长度,你可以使用循环遍历数组,并对每个元素使用 `strlen()` 函数进行计算。