0%

反转字符串(杂谈)

反转字符串是个很简单也比较常用的方法
此文仅做杂谈,无技术含量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

void myReverse(const string& str) {
char* c_str = (char*)str.c_str();
char* p, * q;
p = c_str;
q = c_str + str.size() - 1;
while (p < q) {
char temp_c = *p;
*p = *q;
*q = temp_c;
p++;
q--;
}
}

int main() {
string str = "123456789";
myReverse(str); // 反转方式1
cout << str << endl;
reverse(str.begin() + 2, str.end() - 2); // 反转方式2
cout << str << endl;
cout << string(str.rbegin(), str.rend()); // 反转方式3
return 0;
}

运用迭代器还有更多有趣的写法
这里不一一列出