c++ - 如何查找包含零作为元素的字符数组的长度

标签 c++ char

想知道如何找到 char 数组的长度。 例如

char buffer[20];
buffer[0] = 0x01;
buffer[1] = 0x02;
buffer[3] = 0x00;
buffer[4] = 0x04;
buffer[5] = 0x01;
buffer[6] = 0x02;
buffer[7] = 0x00;
buffer[8] = 0x04;

std::cout << "the len of array = "<< strlen(buffer) << std::endl;

o/p = the len of array = 3

预期 o/p = 8

现在的问题是零可以出现在字符元素数组的任何地方。我需要真正的 len,即 8

最佳答案

C(或 C++)中的数组不会跟踪其中存储了多少数据。如果您想知道存储数据的大小(而不是数组的大小),您需要自己在另一个变量中跟踪它,或者使用标记存储结束的标记(例如 NULL)数据。

或者,由于您似乎在使用 C++(尽管有 C 标记),您可以使用跟踪大小的 std::vectorstd::string给你。

关于c++ - 如何查找包含零作为元素的字符数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520015/

相关文章:

c++ - MFC主线程只关注Dialog,需要处理从服务器接收到的数据

c++ - 为什么将两个大数字相乘显示错误答案?

c++ - 如何在 bazel BUILD 文件中指定 -std=c++11 选项?

python - 如何在 bcc64 项目中嵌入 python?

C++ 强制预处理器评估一个数字

java - 如何验证这些表达式是否有效(所有括号配对 - 闭合)?

java - 角色交换

c - 指针 ** char 的指针问题

C 将 char append 到 char*

C++ char变量2字