这个挑战要求使用 C/C++ 中的位运算来快速确定 c 字符串的长度。
char thestring[16];
这个c字符串最大长度为16个字符,位于缓冲区内。如果字符串等于16个字符,则末尾没有空字节。
我相信这是可以做到的,但我还没有做对。
我正在处理这个问题,但是假设该字符串被复制到一个填零的缓冲区中。
len = buff[0] != 0x0 +
buff[1] != 0x0 +
buff[2] != 0x0 +
buff[3] != 0x0 +
buff[4] != 0x0 +
buff[5] != 0x0 +
buff[6] != 0x0 +
buff[7] != 0x0 +
buff[8] != 0x0 +
buff[9] != 0x0 +
buff[10] != 0x0 +
buff[11] != 0x0 +
buff[12] != 0x0 +
buff[13] != 0x0 +
buff[14] != 0x0 +
buff[15] != 0x0;
注意:缓冲区是零填充的,因此不可能出现 "\0123456789abcde"。