string反转字符串c++
时间: 2023-03-25 11:02:20 浏览: 127
可以使用一个循环,从字符串末尾开始遍历,将每个字符依次添加到一个新的字符串中,最终得到反转后的字符串。具体代码如下:
#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 ;
}
相关问题
反转字符串c++
如何在C++中实现字符串反转
要在C++中实现字符串反转,可以利用标准库中的std::reverse
函数或者手动编写逻辑来完成这一操作。下面展示两种方法:
方法一:使用 std::reverse
这是最简单的方式之一,只需要调用 <algorithm>
头文件里的 std::reverse()
函数即可。
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string str = "hello";
std::reverse(str.begin(), str.end());
std::cout << str; // 输出 olleh
}
这种方法简洁明了,并且性能良好[^1]。
方法二:自定义反转算法
如果不希望依赖于标准库,则可以通过遍历字符串并交换字符位置来自行实现反转功能。
void reverseString(std::string& s) {
int n = s.length();
for (int i = 0; i < n / 2; ++i){
char temp = s[i];
s[i] = s[n - i - 1];
s[n - i - 1] = temp;
}
}
// 使用示例
int main(){
std::string str = "world";
reverseString(str);
std::cout << str; // 输出 dlrow
}
此代码片段展示了不借助任何外部库的情况下如何有效地翻转给定的字符串。
对于更复杂的情况,比如按照单词顺序而不是单个字符来进行整个句子级别的逆序排列,请参阅其他资源如 LeetCode 或 LintCode 上的相关题目描述][^[^24]。
字符串string反转函数c++
在C++中,你可以使用多种方法来反转字符串。以下是几种常见的实现方式:
- 使用标准库函数:
使用
std::reverse()
函数配合迭代器可以轻松地反转字符串。首先将字符串转换为std::vector<char>
,然后应用reverse()
。
#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());
}
- 循环遍历并交换字符: 可以通过两个指针从头和尾开始,逐个交换字符直到它们相遇。
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;
}
- 递归: 利用递归来处理这个问题,每次递归将第一个和最后一个字符交换,然后对剩下的部分继续操作。
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;
}
}
阅读全文
相关推荐
















