c++读取数组长度
时间: 2023-07-16 08:15:50 浏览: 117
C++ 中的数组是定长的,因此长度是在定义数组时就确定了。可以使用 `sizeof` 运算符来获取数组的长度,如下所示:
```c++
int arr[10];
int len = sizeof(arr) / sizeof(arr[0]);
```
上述代码中,`arr` 数组有 10 个元素,`sizeof(arr)` 得到数组的总字节数,`sizeof(arr[0])` 得到数组中每个元素的字节数,两者相除得到数组的长度 `len`。
相关问题
c ++ 读取数组长度
在C++中,读取数组的长度通常不是直接操作,因为数组本身并没有存储其长度的信息。但是,如果你知道数组是如何初始化并且数组的大小是固定的(如常量数组),你可以直接使用数组名作为下标来获取“长度”,但这并不是真正的长度。
对于动态数组,即使用`new[]`关键字创建的数组,或者使用`std::vector`这样的容器,你可以通过以下方式获取其长度:
1. 对于`std::vector`,可以直接访问`size()`函数获取元素个数。
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
int len = vec.size();
```
2. 动态数组则需要遍历或提前计算:
```cpp
int* dynamicArray = new int[10];
int len = sizeof(dynamicArray) / sizeof(int); // 假设每个int占4字节
delete[] dynamicArray; // 别忘了释放内存
// 或者手动计数,但这种方法不推荐,因为会暴露数组的内部细节
int lenWithoutSize = 0;
while (dynamicArray[lenWithoutSize] != '\0') { // 假设数组结束标志是'\0'
lenWithoutSize++;
}
```
C++ 字符数组 读取第一行
可以使用 `fgets()` 函数读取一个字符数组中的第一行,示例代码如下:
```c++
#include <iostream>
#include <cstdio>
using namespace std;
const int MAX_LEN = 100; // 字符数组最大长度
int main() {
char str[MAX_LEN];
fgets(str, MAX_LEN, stdin); // 从标准输入读取一行字符
cout << "The first line of the string is: " << str << endl;
return 0;
}
```
其中 `fgets()` 函数的第一个参数是要读取的字符数组,第二个参数是字符数组最大长度,第三个参数是输入流,通常使用 `stdin` 表示从标准输入读取。读取完之后,字符数组中会包含换行符,需要注意处理。
阅读全文