C语言写法:
#include "stdio.h"
#include "string.h"
#include "math.h"
void reverse(char *str)
{
int length = strlen(str);
for (length; length > 0; length--)
{
printf("%c", *(str + length - 1));
}
}
int main(void)
{
char str[1024] = {};
printf("请输入一行字符串:");
//这里不用scanf()是因为scanf()一次只能读取一个连续字符串,遇到空格则会舍弃空格后的其他字符
fgets(str, 1024, stdin);
reverse(str);
return 0;
}
C++写法
这里用了更复杂的方法(递归),实际上直接使用for_each()函数即可
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
void show(string::iterator _begin, string::iterator _end)
{
if(_begin <= _end)
{
cout << *_end << endl;
show(_begin, --_end);
}
}
void reverse(string &s)
{
show(s.begin(), --s.end());
}
int main()
{
string s("ABCDEFG");
reverse(s);
return 0;
}