我有一个输入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]);
}
看看真正的密码。