当前位置: 首页 > 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;
}
http://www.dtcms.com/a/23748.html

相关文章:

  • 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+本地部署 笔记
  • python中使用日期和时间差:datetime模块
  • 2011年下半年软件设计师考试上午题真题的详细知识点分类整理(附真题及答案解析)
  • Python 植物大战僵尸
  • 地面沉降监测,为地质安全保驾护航
  • 使用SHOW PROCESSLIST和SHOW ENGINE INNODB STATUS排查mysql锁等待问题
  • mysql 存储空间增大解决方案
  • 什么是KL散度:概率分布的差异(筛子1/6情况下KL为:0)
  • mysql快照读当前读
  • 考研操作系统---磁盘
  • 【Zookeeper如何实现分布式锁?】