C++如何去实现字符串翻转
时间: 2023-06-06 20:05:27 浏览: 106
您好!针对问题C, 实现字符串翻转的方法有多种,可以通过循环、递归等方式来实现。这里给出一个循环方式的代码实现:
```C
#include <stdio.h>
#include <string.h>
void reverse_string(char* str)
{
int len = strlen(str);
int i, j;
char temp;
// 循环交换数组元素位置
for(i = 0, j = len - 1; i < j; i++, j--)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
int main()
{
char str[] = "reverse";
printf("before reverse: %s\n", str);
reverse_string(str);
printf("after reverse: %s\n", str);
return 0;
}
```
希望能够对您有所帮助。如果您有其他问题,可以继续问我。
相关问题
C++STL去实现字符串翻转
可以使用STL中的reverse函数实现字符串翻转,具体代码如下:
```cpp
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string str = "Hello, world!";
reverse(str.begin(), str.end());
cout << str << endl;
return 0;
}
```
输出结果为:"!dlrow ,olleH"。
用C++实现字符串的翻转
在C++中,有多种方法可以实现字符串的反转。这里提供一种常见的使用数组和迭代的方式:
```cpp
#include <iostream>
#include <cstring> // 使用memset函数
// 函数模板实现字符串反转
template <typename CharT>
void reverseString(CharT* str) {
if (str == nullptr || strlen(str) <= 1) return; // 防止空指针和长度为0或1的情况
int len = strlen(str);
for (int i = 0; i < len / 2; ++i) {
std::swap(str[i], str[len - i - 1]); // 交换字符
}
}
int main() {
char str[] = "Hello, World!";
reverseString(str);
std::cout << str << std::endl;
return 0;
}
```
在这个例子中,`reverseString`函数接受一个字符指针,通过两个指针分别从字符串的头和尾开始,逐个交换字符直到中间位置。这实现了字符串内容的反转。
阅读全文