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

卡码网语言基础课 | 12. 位置互换

 

通过本次练习,将要学习到以下C++知识点:

  • 位置互换
  • 交换变量
  • 字符串

题目:给定一个长度为偶数位的字符串,请编程实现字符串的奇偶位互换。

奇偶位互换是指字符串的奇数位和偶数位相互交换位置

即:第一位和第二位交换,第三位和第四位交换,第五位和第六位交换.......依次类推。

一、 位置互换

// 不返回(return)结果,所以返回类型为void, 函数名称为swap
// 传入的参数为两个字符,所以类型为char, 参数名称为a 和 b
void swap(char &a, char &b) { // 交换两个字符串, a和b的内容需要改变,所以需要传递引用// 定义第三个字符,并将字符a的内容赋值给第三个字符char tmp = a;// 将字符a的内容修改为字符b的内容a = b;// 将字符b的内容修改为第三个字符的内容,也就是字符a的内容,a和b之间完成替换b = tmp;
}

以上过程,使用杯子的互换来形象化的解释:

二、 循环遍历

循环遍历整个字符串,并调用交换函数。

//遍历整个输入的字符串,从头开始,至最后,且不遍历最后一位数,并实现奇数位的遍历
for(int i = 0; i < s.size() - 1; i += 2){//调用swap函数,并实现i和i+1的位置互换swap(s[i], s[i + 1]);
}

三、 解答

代码编写

#include <iostream>
#include <string>
using namespace std;//定义位置互换函数
void swap(char &a, char &b){ //交换两个字符串,因为a,b的值会改变,因此使用引用符号char c = a; //将第一位数赋值给第三位,并定义第三位c为char类型a = b; //之后,将第二位数赋值给第一位b = c; //最后,将第三位数赋值给第二位,以此完成交换。
}int main(){int n;cin >> n; //输入n,表示有n组字符串输入string s; //接受每次输入的字符串while(n--){//使用n--,来遍历所有字符串cin >> s; //输入字符串for(int i = 0; i < s.size() - 1; i += 2){//在S字符串上直接进行修改swap(s[i],s[i+1]); //调用swap函数,完成字符串的交换}cout << s << endl; //直接输出字符串s,并换行进行下一组字符串的遍历}
}

相关文章:

卡码网语言基础课 | 12. 位置互换

通过本次练习&#xff0c;将要学习到以下C知识点&#xff1a; 位置互换交换变量字符串 题目&#xff1a;给定一个长度为偶数位的字符串&#xff0c;请编程实现字符串的奇偶位互换。 奇偶位互换是指字符串的奇数位和偶数位相互交换位置 即&#xff1a;第一位和第二位交换&…...

用DOM来读取XML时要注意的一些概念

2023年11月15日&#xff0c;周三下午 在 DOM&#xff08;文档对象模型&#xff09;中&#xff0c;有一些重要的概念和术语&#xff1a; 文档对象&#xff08;Document Object&#xff09;&#xff1a;表示整个 XML 文档的根节点&#xff0c;它是 DOM 树的入口点。元素节点&…...

openresty安装配置,执行shell脚本

下载并解压 OpenResty 源代码&#xff1a; bashCopy code wget https://openresty.org/download/openresty-1.19.9.1.tar.gz tar -zxvf openresty-1.19.9.1.tar.gz cd openresty-1.19.9.1 运行 ./configure 并指定安装路径&#xff1a; bashCopy code ./configure --prefix…...

解决Dockerfile中 Could not initialize class sun.awt.X11FontManager错误

Dockerfile中增加命令 RUN yum install dejavu-sans-fonts fontconfig -y如果您使用的是基于Alpine Linux的发行版&#xff0c;可以使用apk命令来安装DejaVu Sans字体和fontconfig工具 RUN apk update RUN apk add ttf-dejavu fontconfig...

Kubernetes(k8s)进阶

文章目录 Kubernetes进阶一、Namespace&#xff08;名称空间&#xff09;1.namespace介绍2.管理namespace查看namespace创建namespaceyaml文件配置namespace 二、Pod&#xff08;最小基本部署单元&#xff09;1.pod介绍2.管理pod创建并运行pod查看pod信息访问pod删除podyaml文件…...

[Vue 配置] Vite + Vue3 项目配置和使用 NProgress

文章归档&#xff1a;https://www.yuque.com/u27599042/coding_star/mfmsrf9tz98ox3qg 安装 pnpm i nprogress配置 NProgress 其他更多可参考&#xff0c;仓库地址&#xff1a;https://github.com/rstacruz/nprogress 在 src/config/nprogress.js 中进行配置 是否展示右上角圆…...

Android MQTT开发之 Hivemq MQTT Client

使用一个开源库&#xff1a;hivemq-mqtt-client&#xff0c;这是Java生态的一个MQTT客户端框架&#xff0c;需要Java 8&#xff0c;Android上使用的话问题不大&#xff0c;需要一些额外的配置&#xff0c;下面列出了相关的配置&#xff0c;尤其是 packagingOptions&#xff0c;…...

【Maven教程】(十一):使用 Maven 构建 Web应用 —— 使用 jetty-maven-plugin 进行测试、使用 Cargo 实现自动化部署~

Maven 使用 Maven 构建 Web应用 1️⃣ Web 项目的目录结构2️⃣ account-service2.1 account-service的 POM2.2 account-service 的主代码 3️⃣ account-web3.1 account-web 的POM3.2 account-web 的主代码 4️⃣ 使用 jetty-maven-plugin 进行测试5️⃣ 使用 Cargo 实现自动…...

番外 2 : LoadRunner 的安装以及配置

LoadRunner 的安装以及配置教程 一 . 配置 IE 浏览器二 . 安装 LoadRunner 工具三 . 修改默认浏览器的配置四 . 设置 LoadRunner 能够获取本地资源 Hello , 大家好 , 又给大家带来新的专栏喽 ~ 这个专栏是专门为零基础小白从 0 到 1 了解软件测试基础理论设计的 , 虽然还不足以…...

win10正确配置tensorRT环境

目的 使用tensorRT进行网络模型部署&#xff0c;加快推理速度 方法 安装tensorRT的过程需要对各种组件的版本进行匹配 前置安装套件有&#xff1a; 1、CUDA 2、cuDNN 3、pyCUDA 4、tensorflow或pytorch 主要记录tensorRT安装: tensorRT安装配置查询 步骤: 1、去tensorRT官网…...

C++初阶-模板初阶

模板初阶 一、泛型编程二、函数模板2.1函数模板概念2.2函数模板格式2.3函数模板的原理2.4函数模板的原理2.5模板参数的匹配原则 三、类模板3.1类模板的定义格式3.2类模板的实例化 一、泛型编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int& left, int& …...

基于Python实现汽车销售数据可视化【500010086】

导入模块 import numpy as np import pandas as pd import plotly.graph_objects as go import plotly.express as px获取数据 df1 pd.read_excel(r"./data/中国汽车总体销量.xlsx") print(df1.head(5))df1.info()df1[年份] df1[时间].dt.year df1[月份] df1[时…...

dist.init_process_group() 卡住超时导致报错

在跑模型是遇到一个问题&#xff1a; import torch.distributed as dist dist.init_process_group(backend"nccl", init_methodtcp://localhost:%d % tcp_port, ranklocal_rank, world_sizenum_gpus)程序卡在这一步一动不动。. 解决办法一&#xff1a; 我看网上有人…...

RESTFul API:真是让人又爱又恨

RESTFul API是一种广泛使用的Web服务设计风格&#xff0c;它以资源为中心&#xff0c;通过HTTP方法来操作这些资源。然而&#xff0c;尽管RESTFul架构风格在许多情况下都非常有用&#xff0c;但在实际应用中&#xff0c;我们也发现了一些不足之处。本文将详细阐述这些问题&…...

【洛谷 P1478】陶陶摘苹果(升级版)题解(多重集合+贪心算法)

陶陶摘苹果&#xff08;升级版&#xff09; 题目描述 又是一年秋季时&#xff0c;陶陶家的苹果树结了 n n n 个果子。陶陶又跑去摘苹果&#xff0c;这次他有一个 a a a 公分的椅子。当他手够不着时&#xff0c;他会站到椅子上再试试。 这次与 NOIp2005 普及组第一题不同的…...

使用WebSocket实现网页聊天室

一、引言 1. 问题引入 Hypertext Transfer Protocol (HTTP) 协议 一种无状态的、应用层的、以请求/应答方式运行的协议&#xff0c;它使用可扩展的语义和自描述消息格式&#xff0c;与基于网络的超文本信息系统灵活的互动. 因为http 通信只能由客户端发起,服务器返回查询结果…...

《如何控制 LLM 的输出格式和解析其输出结果?》

内容来源&#xff1a;dotey 《如何控制 LLM 的输出格式和解析其输出结果&#xff1f;》 https://baoyu.io/blog/prompt-engineering/how-to-parse-the-output-from-llm 现在很多人对于如何使用像 ChatGPT 这样的 LLM 已经比较有经验了&#xff0c;可以使用各种不同的 Prompt …...

《网络协议》07. 其他协议

title: 《网络协议》07. 其他协议 date: 2022-10-07 18:24:02 updated: 2023-11-15 08:00:52 categories: 学习记录&#xff1a;网络协议 excerpt: IPv6、WebSocket、WebService&#xff08;SOAP&#xff0c;WSDL&#xff09;、HTTPDNS、FTP、邮件&#xff08;SMTP&#xff0c;…...

高压放大器设计要求有哪些内容

设计高压放大器时&#xff0c;需要考虑一系列要求以确保其性能和可靠性。以下是设计高压放大器时的一些重要要求。 输入输出电压范围&#xff1a;高压放大器应具备足够的输入和输出电压范围&#xff0c;以适应特定应用的需求。这包括设计合适的电源供应和电路配置&#xff0c;以…...

1700亿烧光,利润暴跌78%!外媒:中芯国际不是麒麟9000S的代工厂

作为芯片代工领域的领导者&#xff0c;台积电在全球半导体市场上占据着重要的地位。然而&#xff0c;由于美国对华为的制裁&#xff0c;台积电关闭了对华为麒麟芯片的代工&#xff0c;这也引发了外界对于芯片代工模式的讨论。与此同时&#xff0c;中芯国际作为大陆规模最大、技…...

告别电台收听难题:foobox-cn网络电台收听方案

告别电台收听难题&#xff1a;foobox-cn网络电台收听方案 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn foobox-cn作为foobar2000的DUI皮肤&#xff08;桌面用户界面定制方案&#xff09;&#xff0…...

大语言模型,视觉模型,全模态模型,语音模型和向量模型的区别和使用

1. 大语言模型&#xff08;Large Language Model, LLM&#xff09;定义&#xff1a;以文本为输入&#xff0c;生成文本的模型。特点&#xff1a;输入输出都是自然语言&#xff08;或包含少量结构化的 prompt&#xff09;。擅长对话、写作、推理、代码生成等任务。在 LangChain …...

告别手动重标:基于Python脚本的Labelme数据集增强与JSON同步更新实战

1. 为什么我们需要自动化处理Labelme标注数据 做计算机视觉项目的朋友都知道&#xff0c;数据标注是个体力活。特别是使用Labelme这类工具进行语义分割标注时&#xff0c;每张图片都要手动勾勒物体轮廓&#xff0c;工作量巨大。更让人头疼的是&#xff0c;当我们对原始图片进行…...

Fish-Speech-1.5 API调用教程:Python脚本批量生成语音

Fish-Speech-1.5 API调用教程&#xff1a;Python脚本批量生成语音 1. 为什么选择Fish-Speech-1.5进行批量语音生成 在日常工作中&#xff0c;我们经常遇到需要将大量文本转换为语音的场景。无论是为视频内容生成旁白&#xff0c;还是为电子书制作有声版本&#xff0c;传统的人…...

Onnxruntime模型量化实战:从PTQ到精度调优

1. Onnxruntime模型量化入门指南 第一次接触模型量化时&#xff0c;我也被各种术语搞得晕头转向。简单来说&#xff0c;量化就是把模型参数从32位浮点数转换为8位整数&#xff0c;就像把高清图片压缩成更小的文件。Onnxruntime作为业界领先的推理引擎&#xff0c;提供了完整的量…...

深入解析GD32/STM32 PWM中断:中央对齐模式的应用与实现

1. PWM中断与中央对齐模式的核心概念 第一次接触PWM中断时&#xff0c;我盯着示波器上跳动的波形发愣——明明配置了中断&#xff0c;为什么触发时机总是不对&#xff1f;后来才发现是计数模式没选对。中央对齐模式&#xff08;Center-Aligned Mode&#xff09;在电机控制、LED…...

告别广告侵扰:AdGuard广告拦截扩展全平台部署指南

告别广告侵扰&#xff1a;AdGuard广告拦截扩展全平台部署指南 【免费下载链接】AdguardBrowserExtension AdGuard browser extension 项目地址: https://gitcode.com/gh_mirrors/ad/AdguardBrowserExtension 副标题&#xff1a;从新手到高手的一站式配置方案 一、价值定…...

ReflectiveDLLInjection实战:从源码编译到进程注入完整流程

ReflectiveDLLInjection实战&#xff1a;从源码编译到进程注入完整流程 【免费下载链接】ReflectiveDLLInjection Reflective DLL injection is a library injection technique in which the concept of reflective programming is employed to perform the loading of a libra…...

互联网舆情分析系统:基于Nanbeige 4.1-3B的情感与主题挖掘

互联网舆情分析系统&#xff1a;基于Nanbeige 4.1-3B的情感与主题挖掘 最近几年&#xff0c;大家有没有感觉网上的声音越来越复杂&#xff1f;一个热点出来&#xff0c;瞬间就是成千上万条评论&#xff0c;有支持的&#xff0c;有反对的&#xff0c;有理性分析的&#xff0c;也…...

FastAPI状态管理:FastAPI 全局状态管理的 3 种最佳实践

更多内容请见: 《Python Web项目集锦》 - 专栏介绍和目录 在构建生产级FastAPI应用时,全局状态管理是确保资源高效利用和系统稳定性的关键。不当的状态管理可能导致资源泄漏、线程安全问题和不可预测的行为。本文将深入分析FastAPI中实现全局状态的三种最佳实践,揭示其底层机…...