不用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")

京公网安备 11010502036488号