正文
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; }