c++string逆置
时间: 2023-10-22 19:04:36 浏览: 83
c++中对c string进行逆置有多种方法:
方法一:利用入栈出栈操作。可以使用一个栈来将字符串中的字符逐个压入栈中,然后再从栈中依次弹出字符,即可得到逆置后的字符串。
方法二:前后两两交换。可以使用两个指针,一个指向字符串的开头,一个指向字符串的末尾,然后交换两个指针所指向的字符,依次向中间靠拢,直到两个指针相遇或交错,即可得到逆置后的字符串。
C++提供了string类来处理字符串,可以利用反向迭代器将字符串进行逆置。
参考代码如下:
```c++
#include<iostream>
#include<string>
#include<stack>
using namespace std;
// 方法一:利用入栈出栈
void StringReverse_1(string &str) {
stack<char> sta;
for (int i = 0; i < str.length(); i++) {
sta.push(str[i]);
}
for (int j = 0; !sta.empty(); j++) {
str[j] = sta.top();
sta.pop();
}
}
// 方法二:前后两两交换,就地解决
void StringReverse_2(string &str) {
if (!str.empty()) {
for (int i = 0, j = str.length() - 1; i != j; i++, j--) {
char temp;
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
int main() {
string str;
cout << "输入要逆置的字符串:" << endl;
getline(cin, str);
StringReverse_1(str); // 或者使用 StringReverse_2(str);
cout << str << endl;
return 0;
}
```