想知道如何找到 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::vector
或 std::string
给你。
关于c++ - 如何查找包含零作为元素的字符数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520015/