//以下代码通过VS2013环境测试
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main(){
void Reverse_one(string);
void Reverse_two(char *);
void Reverse_three(char *);
string s;
cin >> s;
char *s2 = new char[s.length()];
strcpy(s2, s.c_str());//注意别用s2=s.c_str(),会倒置输出垃圾数据,因为s是对象,它被析构了,c_str()返回的是一个临时指针
Reverse_one(s);
Reverse_two(s2);
Reverse_three(s2);
system("pause");
return 0;
}
void Reverse_one(string s){
reverse(s.begin(), s.end());
cout << s << endl;
}
void Reverse_two(char *s2){
_strrev(s2);
for (int i = 0; i<strlen(s2); i++)
cout << s2[i];
cout << endl;
}
void Reverse_three(char *s2){
for (int k=0,i = strlen(s2)-1;i>=0;i--,k++){
char tmp = s2[k];
s2[k] = s2[i];
s2[i] = tmp;
}
for (int i = 0; i<strlen(s2); i++)
cout << s2[i];
cout << endl;
}