#include <iostream>
#include <stdio.h>
using namespace std;
const int MAXSIZE = 10000;
/*
问题:用C或C++实现void reverse(char* str)函数,即翻转一个null结尾的字符串
分析:寻找到str最后的下标对应字符ch,然后从字符串末尾开始将
最好的方法就是找到字符串的开始和末尾,将首尾交换后,然后向中间继续靠近
输入:
chaoma
输出:
amoahc
关键:
1 本质就是寻找到字符串首尾指针,对于首尾处字符交换,然后向中间逼近
2 注意寻找到尾指针后,需要另last--,因为需使得尾指针在'\0'之前的一个字符
*/
void reverse(char* str)
{
char* last = str;
//如果还没有到达末尾
while( (*last) != '\0' )
{
last++;
}
//最后一个字符串是结尾符,需要去除
last--;
char* begin = str;
//只要前面小于后面,就交换
while(begin < last)
{
char temp = * begin;
//先*后++
*(begin++) = *last;
*(last--) = temp;
}
}
int main(int argc, char* argv[])
{
char str[MAXSIZE];
while(cin >> str)
{
reverse(str);
cout << str << endl;
}
system("pause");
return 0;
}