编写一个求字符串长度的函数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 回答
- 0 关注
- 982 浏览
添加回答
举报
0/150
提交
取消