使用c++写个字符串反转
时间: 2023-03-11 11:01:36 浏览: 83
可以使用以下代码来反转字符串:char* reverse(char* str) {
int length = strlen(str);
int i;
char *result = (char*)malloc(length+1);
for(i = 0; i < length; i++) {
result[length-i-1] = str[i];
}
result[length] = '\0';
return result;
}
相关问题
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进制字符串的长度是偶数。如果长度是奇数,你可能需要进行额外的处理。
请使用c++语言写一个反转字符串算法
Sure, 我可以回答这个问题。下面是使用C语言写的反转字符串算法的示例代码:
```c
#include <stdio.h>
#include <string.h>
void reverse(char str[]) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
reverse(str);
printf("反转后的字符串是:%s\n", str);
return 0;
}
```
该算法的思路是先获取字符串的长度,然后从字符串首尾开始交换字符,直到遇到字符串中心位置。如果输入字符串为 "hello",则输出结果为 "olleh"。希望这可以帮助你!