我用笔能跑通,但是实际上不能让数组正确倒序排列,为什么内?

将原字符串倒序排列的函数,感觉能跑通,实际上跑不通,到底是什么原因捏?
img

img

第一个for循环中,j<i改成 i > 0。因为你是把st字符串复制到pt中,所以需要全部遍历st,如果是j<i,因为i一直在减减,只能遍历st的一半字符

供参考:

void order(char* st)
{
    char pt[SIZE];
    int i = 0, j, k;
    while (st[i] != '\0') i++;
    k = i-1;
    for (j = 0; j < i; j++) {
        pt[j] = st[k--];
    }
    for (k = 0; k < i; k++)
        st[k] = pt[k];
    st[k] = '\0';
}