为了账号安全,请及时绑定邮箱和手机立即绑定

关于C++的问题 望解释

关于C++的问题 望解释

C++
风韵犹存的小明 2018-08-16 11:10:33
编写一个求字符串长度的函数strlen(),再用strlen()函数编写一个函数revers(s)的倒序递归程序,使字符串s逆序。在编写revers时   初学C++望各位大神可以详细解释解释 谢谢int strlen(char *str) {    int len = 0;      while(str[len] != '\0')    {               len++;         }      return len; }void revers(char *str) {         char c;    int loc, len;          len = strlen(str);          loc = len / 2 - 1;             //这里为什么要除以2-1      while(loc >= 0)      {   c = *(str + loc);                 *(str + loc) = *(str + len - loc - 1);       //这里的意思是?         *(str + len - loc - 1) = c;                   loc--;            }        str[len] = '\0';}
查看完整描述

1 回答

已采纳
?
ycwiacb

TA贡献11条经验 获得超3个赞

除以二减一是定位到字符串的中间位置左边的字符,如abcde,5/2-1等于1也就是b这个字符。然后5-1-1等于3也就是d这个字符,然后交换b和d,然后同理交换a和e,因为中间字符不管正序还是反序,位置始终不变所以用它的下标为准来达到交换它的左右字符从而达到反序的目的

查看完整回答
1 反对 回复 2018-08-16
  • 1 回答
  • 0 关注
  • 978 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信