c++string类的字符串反转
时间: 2023-09-27 21:07:02 浏览: 54
C++中可以使用`std::reverse`函数对字符串进行反转。但是`std::reverse`函数是作用在迭代器上的,所以我们需要将字符串转换为字符数组或使用字符串迭代器来完成反转操作。
以下是一个示例代码:
```cpp
#include <iostream>
#include <algorithm>
#include <string>
int main() {
std::string str = "Hello, World!";
std::reverse(str.begin(), str.end());
std::cout << str << std::endl;
return 0;
}
```
这段代码会输出反转后的字符串`!dlroW ,olleH`。我们使用`std::reverse`函数将字符串`str`的起始迭代器和终止迭代器作为参数进行反转操作。
相关问题
string字符串反转函数c++
有三种常用的方法可以对字符串进行反转。第一种是使用string.h中的strrev函数,第二种是使用algorithm中的reverse函数,第三种是自己编写反转函数。其中,第一种方法只适用于字符数组,而后两种方法可以处理string类型的字符串。以下是三种方法的代码示例:
第一种:使用string.h中的strrev函数
```
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char s[] = "hello";
strrev(s);
cout << s << endl;
return 0;
}
```
第二种:使用algorithm中的reverse函数
```
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string s = "hello";
reverse(s.begin(), s.end());
cout << s << endl;
return 0;
}
```
第三种:自己编写反转函数
```
#include <iostream>
using namespace std;
void Reverse(char *s, int n) {
for(int i = 0, j = n - 1; i < j; i++, j--) {
char c = s[i];
s[i] = s[j];
s[j] = c;
}
}
int main() {
char s[] = "hello";
Reverse(s, 5);
cout << s << endl;
return 0;
}
```
c++16进制字符串反转
要将一个16进制字符串进行反转,你可以使用以下步骤来实现:
1. 首先,将16进制字符串转换为普通的字符串。
2. 然后,将普通字符串进行反转操作。
3. 最后,将反转后的字符串再转换回16进制字符串。
这里是一个示例代码,演示了如何实现这个功能:
```cpp
#include <iostream>
#include <algorithm>
#include <sstream>
// 函数用于将16进制字符串转换为普通字符串
std::string hexToString(const std::string& hexStr) {
std::string result;
for (size_t i = 0; i < hexStr.length(); i += 2) {
std::string byteStr = hexStr.substr(i, 2);
char byte = static_cast<char>(std::stoi(byteStr, nullptr, 16));
result.push_back(byte);
}
return result;
}
// 函数用于将普通字符串转换为16进制字符串
std::string stringToHex(const std::string& str) {
std::stringstream ss;
for (const char& c : str) {
ss << std::hex << static_cast<int>(c);
}
return ss.str();
}
int main() {
std::string hexStr = "48656c6c6f20576f726c64"; // 16进制字符串
std::string str = hexToString(hexStr); // 转换为普通字符串
std::reverse(str.begin(), str.end()); // 反转字符串
std::string reversedHexStr = stringToHex(str); // 转换为16进制字符串
std::cout << "Reversed Hex String: " << reversedHexStr << std::endl;
return 0;
}
```
运行此代码将输出反转后的16进制字符串。请注意,该代码假定输入的16进制字符串的长度是偶数。如果长度是奇数,你可能需要进行额外的处理。