我知道打印的第一个字母是 b c d e f。为什么不打印“g”?当 I 为 5 时,会打印“f”。 i 减至 4,因此应进入 for 循环。相反,尽管我小于 6 (strlen(arr)-1=6),但它不会进入。
char* arr = "abcdefg"; //String
int i;
for (i = 1; i < strlen(arr)-1; i+=2) //i is incremented by 2.
{
printf("%c ", arr[i--]); //Here i is decremented
}
返回0;
最佳答案
这是一个逻辑问题,我会尽力说明这一点
<小时/>1º loop -> i = 1, arr[--i] = a
2º loop -> i = 3, arr[--i] = c
3º loop -> i = 5, arr[--i] = e
循环结束//i = 7, strlen(arr)-1 = 5
Note: I didn't debug that in C, but as I said, this is a logic issue...
我认为,当发生这种情况时,尝试使用 IDE 进行调试是个好主意
关于c - 为什么不打印字母final char ('g' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49311129/