全部问题 > 当前问题

strlen(t)-1 这个看不懂?

这个这样理解:假设字符串数组是t[10]=abcdefghs'\0',strlen(t)=9,

求最后一个元素下角标即i的下角标,便可求出t[9]=s,

所以i=9-1=8,

(j=0;j<i;j++)  /*t[j]从t[0]开始依次将t[j]与t[i+1]作比较 t[0]与t[1]比较 对应ASCⅡ码大的放到t[i+1]……

                    /*直到 (j=i-1)<i 循环条件成立,t[i-1]与t[i-1+1]比较


Toughwind 2017-2-25 12:28:58

共 5 个回答

最佳答案

qqq 2017-2-25 14:42:16

同学。。你这是在问问题还是在自问自答?

strlen(t)=9,说明t数组的最大下标是8,也就是t[8]=s而不是t[9]。。t[9]已经是结束符了。

答案里的i从strlen(t)-1开始循环然后每次自减1,就是从t数组的最后一个元素s开始往前循环的意思。

Toughwind 2017-2-25 15:16:19

回复 qqq:本来想回答别人的问题 然后推了一下 自己也看不懂了。

现在懂了 t[10]表示有十个元素 最后一个元素是t[10-1]是'\0',而要求的最后一个元素是t[10-1-1],即倒数第二个元素。

Toughwind 2017-2-25 15:16:35

回复 qqq:谢谢老师

qqq 2017-2-25 21:30:02

回复 Toughwind:不客气

宋晓庆 2017-3-11 14:00:39

回复 qqq:那为什么不考虑第一个元素?a【0】

问题来自: 改错题真题