我有一个输入c字符串,它似乎是字节或八位字节。
当我打印出来的时候

printf("this is string[%s]\n", inputCstr);

它不会打印整个东西。
所以我试着像
for (int i=0; i<len; i++) {
    printf("inputCstr[%d] = %c", i, inputCstr[i]);
}

这会遍历整个字符串,但实际上会跳过一些索引。例如,如果字符串是“abcdefg”,它将给出
有点像
inputCstr[0] = a
inputCstr[2] = c
inputCstr[5] = f

我错过了什么?

最佳答案

这是因为字节数组中有一些控制字符是由控制台专门解释的。
在您的案例中,您可能遇到过,例如\r或类似的情况,将光标移动到第一列,下一行覆盖上一行。
您可以尝试:

for (int i=0; i<len; i++) {
    printf("inputCstr[%d] = %02X\n", i, (unsigned char)inputCstr[i]);
}

看看真正的密码。

10-06 10:23