额。。。这个代码用C++ 的 STL 还是很简单就能实现的,只是不知道是不是满足你
的要求。。。
//我先说原理吧,
/* 1: 建立一个链表,保存字符串,是将每个字符单独保存的。
2: 将该字符串保存在字符串数组中。
3:删除第一个字符,并将该字符插入链表尾,、
4: 循环,直到所有的字母都被翻转。。。。
代码如下:
#include <iostream>
#include <string>
#include <vector>
#include <list>
#include <iterator>
#include <algorithm>
using namespace std;
int main()
{
vector<string> str_vec;///这个是个数组,你可以这么理解,保存的是字符串;
list<char> c_list; //这个是链表,每个节点保存一个字符。
string str;
cout<<"input : ";
cin>>str;
c_list.insert(c_list.begin(),str.begin(),str.end());
ostream_iterator<char> os(cout," ");
copy(c_list.begin(),c_list.end(),os);
cout<<endl;
int num=str.size();
while(num--)
{
string temp(c_list.begin(),c_list.end());
str_vec.push_back(temp);
list<char>::iterator itr=c_list.begin();
char ch=*itr;
c_list.erase(itr);
c_list.push_back(ch);
}
ostream_iterator<string> os1(cout," ");
copy(str_vec.begin(),str_vec.end(),os1);
return 0;
}
有些函数接口你也许没接触到,但是你查一些资料就明白了。。。
希望对你有用。。。
祝: 事事顺心,学业有成。。。。 by sxl
温馨提示:答案为网友推荐,仅供参考