string反转字符串c++
时间: 2023-03-25 20:02:20 浏览: 120
可以使用一个循环,从字符串末尾开始遍历,将每个字符依次添加到一个新的字符串中,最终得到反转后的字符串。具体代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], rev[100];
int i, j;
printf("请输入一个字符串:");
scanf("%s", str);
j = ;
for (i = strlen(str) - 1; i >= ; i--) {
rev[j++] = str[i];
}
rev[j] = '\';
printf("反转后的字符串为:%s\n", rev);
return ;
}
```
相关问题
字符串string反转函数c++
在C++中,你可以使用多种方法来反转字符串。以下是几种常见的实现方式:
1. **使用标准库函数**:
使用`std::reverse()`函数配合迭代器可以轻松地反转字符串。首先将字符串转换为`std::vector<char>`,然后应用`reverse()`。
```cpp
#include <algorithm>
#include <vector>
std::string reverseString(const std::string& str) {
std::vector<char> chars(str.begin(), str.end());
std::reverse(chars.begin(), chars.end());
return std::string(chars.rbegin(), chars.rend());
}
```
2. **循环遍历并交换字符**:
可以通过两个指针从头和尾开始,逐个交换字符直到它们相遇。
```cpp
std::string reverseString(const std::string& str) {
int start = 0;
int end = str.length() - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
return str;
}
```
3. **递归**:
利用递归来处理这个问题,每次递归将第一个和最后一个字符交换,然后对剩下的部分继续操作。
```cpp
std::string reverseString(const std::string& str, int start = 0, int end = -1) {
if (end == -1) {
end = str.length() - 1;
}
if (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
return reverseString(str, start + 1, end - 1);
} else {
return str;
}
}
```
leetcode反转字符串c++
要反转一个字符串,可以使用双指针的方法。具体实现如下:
```cpp
#include <algorithm>
void reverseString(vector<char>& s) {
int left = 0;
int right = s.size() - 1;
while (left < right) {
// 交换左右指针所指向的字符
swap(s[left], s[right]);
left++;
right--;
}
}
```
上述代码中,我们使用两个指针 `left` 和 `right` 分别指向字符串的首尾元素。然后,我们不断交换 `left` 和 `right` 指针所指向的字符,并将 `left` 向右移动、`right` 向左移动。直到 `left` 不再小于 `right`,反转完成。
注意,我们传入的字符串 `s` 是一个引用,这样在函数内部修改 `s` 的内容会反映到函数外部。
希望能解答到您的问题!如有更多疑问,请继续提问。
阅读全文