不用c++ reverse函数的解法:(常规char数组方法)
注意!尾指针指到字符数组最后一位是'\0',并不是有效字符, 此时,尾指针q需要回退一位。
#include <algorithm> #include <iostream> using namespace std; #define N 201 void Myreverse(char str[]){ char *p = str; //头指针 char *q = str; //尾指针 char temp; while (*q != '\0'){ //指到数组末尾'\0' q++; } q--; //要指到字符数组的有效字符的最后一位,所以要从'\0'位回退一位 while (p < q){ //交换 temp = *q; *q = *p; *p = temp; //移动指针 p++; q--; } } int main() { char str[N]; while (cin >> str) { // 注意 while 处理多个 case Myreverse(str); cout << str << endl; } } // 64 位输出请用 printf("%lld")