当前位置: 首页 > news >正文

C++反转字符串

C++反转字符串

  • 1、reverse()
  • 2、双指针方法
  • 3、字符串拼接

1、reverse()

#include <algorithm>
#include<bits/stdc++.h>
using namespace std;

int main(){

	string s;
	
	cin >> s;
	
	reverse(s.begin(), s.end());
	
	cout << s;
	
    return 0;
}

2、双指针方法

思路:用两个指针从字符串的两端同时向中间移动,并在移动过程中交换字符的位置。

步骤:
1、输入字符串s
2、初始化指针:使用两个指针(或索引)i和j,分别指向字符串的开头(0)和结尾(s.size() - 1)。
3、交换字符:
  1)在循环中,不断交换i和j所指向的字符,然后移动指针。i向右移动(i++),j向左移动(j–)。
  2)循环继续,直到i和j相遇或i超过j。
4、输出反转后的字符串

#include<bits/stdc++.h>
using namespace std;

int main(){
	string s;
	
	cin >> s;
	
	int i = 0, j = s.size() - 1;
	while(i < j){
		swap(s[i++], s[j--]);
	}

	cout << s;
	
    return 0;
}
#include<bits/stdc++.h>
using namespace std;

int main(){

	string s;
	
	cin >> s;
	
	int n = s.size(); 
	for(int i = 0, j = n - 1; i < j; i++, j--){
		swap(s[i], s[j]);
	}
	
	cout << s;
	
    return 0;
}

3、字符串拼接

通过遍历字符串并从头开始逐个字符添加到新字符串前,实现字符串的反转。

#include<bits/stdc++.h>
using namespace std;

string s1, s2;
int main(){
	
	cin >> s1;
	
	for(int i = 0; i < s1.size(); i++){	
		s2 = s1[i] + s2;
	}
	
	cout << s2;
	
    return 0;
}

相关文章:

  • Android MVC、MVP、MVVM、MVI的架构的区别
  • numpy库
  • 基于若依开发的工程项目管理系统开源免费,用于工程项目投标、进度及成本管理的OA 办公开源系统,非常出色!
  • spring boot知识点1
  • matlab 三维时频图绘制
  • 蓝桥杯篇---IAP15F2K61S2矩阵键盘
  • js第八题
  • 算法——结合实例了解Minimax算法(极小化极大算法)
  • 【C++】stack 和 queue 的适配器模式与实现
  • mysql 使用 CONCAT、GROUP_CONCAT 嵌套查询出 json 格式数据
  • javacv将mp4视频切分为m3u8视频并播放
  • 前端【技术方案】重构项目
  • Vue 3 中,Pinia 和 Vuex 的主要区别
  • blender骨骼分层问题:某一层的骨骼怎么移动到第一层
  • SQL高级语法
  • 【六】Golang 运算符
  • Git备忘录(三)
  • 【Spring Cloud Alibaba】Sentinel 服务熔断与流量控制
  • 【股票数据API接口24】如何获取最近10天资金流入趋势数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
  • huggingface+下载deepseek8b lamda+本地部署 笔记
  • 新华时评:博物馆正以可亲可近替代“高冷范儿”
  • 六省会共建交通枢纽集群,中部六省离经济“第五极”有多远?
  • 全国省市县国土空间总体规划已基本批复完成,进入全面实施阶段
  • 中国恒大披露清盘进展:要求债权人提交债权证明表
  • 农行再回应客户办理业务期间离世:亲属连续三次输错密码,理解亲属悲痛,将协助做好善后
  • 男子恶意遗弃幼子获刑,最高法发布涉未成年人家庭保护典型案例