反转串
2017-01-20 12:16
197 查看
反转串
我们把“cba”称为“abc”的反转串。下面的代码可以把buf中的字符反转。其中n表示buf中待反转的串的长度。请补充缺少的代码。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
void reverse_str(char* buf, int n)
{
if(n<2) return;
char tmp = buf[0];
buf[0] = buf[n-1];
buf[n-1] = tmp;
_______________________________;
}
利用递归把字符串的首尾交换,每次把指针+1,指向字符数组不同的地方,每次把字符数组的长度-2
参考答案:reverse_str(buf+1,n-2)注意数组与指针的语法等价性:
buf + 1 等价 &buf[1]
reverse_str(++buf,n-2) (比较变态)
可能有许多写法,代入到源程序,看运行结果。
#include<iostream> using namespace std; //指针 void reverse_str(char* buf, int n) { if(n<2) return; char tmp = buf[0]; buf[0] = buf[n-1]; buf[n-1] = tmp; reverse_str(buf+1,n-2); } //指针+1 int main() { int n; cin>>n; char buf ; int i; for(i=0;i<n;i++){ cin>>buf[i]; } reverse_str(buf,n); for(i=0;i<n;i++){ cout<<buf[i]; } return 0; }
相关文章推荐
- Spring的控制反转的三种方式
- 反转链表
- 递归反转链表
- 数据结构与算法之反转链表
- 单词反转
- 题目1089:数字反转
- 字符串的一些基本操作,复制,长度,子串查找,单词反转,比较,字符串反转,删除指定字符。
- 剑指offer 面试题16:反转链表(Leetcode 206: Reverse Linked List) 题解
- java学习笔记之Spring依赖注入和控制反转
- 字符串反转--Leetcode Reverse String
- 数字反转
- C++实现字符串反转
- 7. Reverse Integer 反转int
- 链表反转 递归写法
- 链表的反转
- 对spring控制反转以及依赖注入的理解
- 字符串反转方法汇总
- 单链表的反转(递归)
- 范例:继承的应用:数组排序,反转
- 剑指Offer:反转链表