NO.29十六届蓝桥杯备战|string九道练习|reverse|翻转|回文(C++)

P5015 [NOIP 2018 普及组] 标题统计 - 洛谷
#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string s;getline(cin, s);int sz = s.size();int cnt = 0;for (int i = 0; i < sz; i++){if (isspace(s[i]))continue;elsecnt++;}cout << cnt << endl;return 0;
}

isspace判断是否是空白字符,即空格和换行

#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string s;getline(cin, s);int cnt = 0;for (auto x : s){if (isspace(x))continue;elsecnt++;}cout << cnt << endl;return 0;
}

方法二:按照单词读取

#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string s;int cnt = 0;while (cin >> s){cnt += s.size();        }cout << cnt << endl;return 0;
}

有时候处理⼀个字符串的时候,也不⼀定要⼀次性读取完整个字符串,如果字符串中有空格的话,其实可以当做多个单词,⼀次读取。
cin >> s 会返回⼀个流对象的引⽤,即 cin 本⾝。在C++中,流对象(如 cin )可以被⽤作布尔值来检查流的状态。如果流的状态良好(即没有发⽣错误),流对象的布尔值为 true 。如果发⽣错误(如遇到输⼊结束符或类型不匹配),布尔值为 false 。
在 while (cin >> s) 语句中,循环的条件部分检查 cin 流的状态。如果流成功读取到⼀个值, cin >> s 返回的流对象cin 将被转换为true ,循环将继续。如果读取失败(例如遇到输⼊结束符或⽆法读取到⼀个值), cin >> s 返回的流对象 cin 将被转换为 false ,循环将停⽌。

B2112 石头剪子布 - 洛谷
#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int n;cin >> n;string p1, p2;while (n--){cin >> p1 >> p2;if (p1 == p2)cout << "Tie" << endl;else if (p1 == "Rock" && p2 == "Scissors")cout << "Player1" << endl;else if (p1 == "Scissors" && p2 == "Paper")cout << "Player1" << endl;else if (p1 == "Paper" && p2 == "Rock")cout << "Player1" << endl;elsecout << "Player2" << endl;}return 0;
}
B2115 密码翻译 - 洛谷

![[Pasted image 20250307210105.png]]

#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string s;getline(cin, s);for (auto &x : s){if ((x >= 'b' && x <= 'z') || (x >= 'B' && x <= 'Z'))x--;else if (x == 'a')x = 'z';else if (x == 'A')x = 'Z';}cout << s << endl;return 0;
}
P5734 【深基6.例6】文字处理软件 - 洛谷
#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int q = 0;int m = 0;string s;string str;int a, b;cin >> q;cin >> s;while (q--){cin >> m;switch(m){case 1:cin >> str;s += str;cout << s << endl;break;case 2:cin >> a >> b;s = s.substr(a, b);cout << s << endl;break;case 3:cin >> a >> str;s.insert(a, str);cout << s << endl;break;case 4:cin >> str;size_t n = s.find(str);if (n == string::npos)cout << -1 << endl;elsecout << n << endl;break;}}return 0;
}
B2120 单词的长度 - 洛谷
#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string s;cin >> s;cout << s.size();while (cin >> s){size_t n = s.size();cout << ',' << n;}cout << endl;return 0;
}
#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string s;bool flag = true;while (cin >> s){if (flag){cout << s.size();flag = false;}else{size_t n = s.size();cout << ',' << n;  }}cout << endl;return 0;
}
B2122 单词翻转 - 洛谷
#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string s;while (cin >> s){int left = 0;int right = s.size() - 1;while (left < right){char tmp = s[left];s[left] = s[right];s[right] = tmp;left++;right--;}cout << s << endl;}return 0;
}

其实在C++的STL中,包含⼀个算法叫 reverse ,可以完成字符串的逆序(反转)。需要的头⽂件是 <algorithm>

void reverse (BidirectionalIterator first, BidirectionalIterator last);  
//first: 指向要反转范围的第⼀个元素的迭代器(也可以是地址)  
//last: 指向要反转范围的最后⼀个元素的下⼀个位置的迭代器(也可以是地址)(翻转时不包括此元素)。

reverse 会逆序范围 [first, last) 内的元素

string s = "abcdef";  
reverse(s.begin(), s.end());
#include <iostream>  
#include <algorithm>  
using namespace std;
int main()  
{  //反转字符串  string s("abcdef");  reverse(s.begin(), s.end());  cout << s << endl;  //反转数组  int arr[] = { 1,2,3,4,5,6,7,8,9,10 };  int size = sizeof(arr) / sizeof(arr[0]);  //对数组中的元素进⾏反转  reverse(arr, arr+size);  for (auto e : arr)  {  cout << e << " ";  }  cout << endl;  return 0;  
}

![[Pasted image 20250308104344.png]]

#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string s;while (cin >> s){reverse(s.begin(), s.end());cout << s << endl;}return 0;
}
B2124 判断字符串是否为回文 - 洛谷
#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string s;cin >> s;string s1;s1 = s;reverse(s.begin(), s.end());if (s1 == s)cout << "yes" << endl;elsecout << "no" << endl;return 0;
}
#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string s;cin >> s;int left = 0;int right = s.size() - 1;while (left < right){if (s[left] != s[right]){cout << "no" << endl;break;}left++;right--;}if (left >= right)cout << "yes" << endl;return 0;
}
P1765 手机 - 洛谷
#include <bits/stdc++.h>
using namespace std;int c[26] = {1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4};
int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);string s;getline(cin, s);int cnt = 0;for (auto x : s){if (x == ' ')cnt++;elsecnt += c[x - 'a'];}cout << cnt << endl;return 0;
}
P1957 口算练习题 - 洛谷
#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int i = 0;cin >> i;string op;string last;while(i--){string ans;cin >> op;int n1, n2;int r = 0;if (op == "a" || op == "b" || op == "c"){cin >> n1 >> n2;ans += to_string(n1);if (op == "a"){r = n1 + n2;ans += "+";ans += to_string(n2);ans += "=";ans += to_string(r);}else if (op == "b"){r = n1 - n2;ans += "-";ans += to_string(n2);ans += "=";ans += to_string(r);}else{r = n1 * n2;ans += "*";ans += to_string(n2);ans += "=";ans += to_string(r);                }last = op;}else{n1 = stoi(op);ans += to_string(n1);cin >> n2;if (last == "a"){r = n1 + n2;ans += "+";ans += to_string(n2);ans += "=";ans += to_string(r);}else if (last == "b"){r = n1 - n2;ans += "-";ans += to_string(n2);ans += "=";ans += to_string(r);}else{r = n1 * n2;ans += "*";ans += to_string(n2);ans += "=";ans += to_string(r);                }}cout << ans << endl;cout << ans.size() << endl;}return 0;
}
#include <iostream>  
#include <string>  
using namespace std;  
int main()  
{  int n = 0;  cin >> n;  string op;  string num1;  string num2;  string last;  int ret = 0;  while (n--)  {  string ans;  cin >> op;  if (op == "a" || op == "b" || op == "c")  {  cin >> num1 >> num2;  int n1 = stoi(num1);  int n2 = stoi(num2);  ans += num1;  if (op == "a")  ret = n1 + n2, ans += "+";  else if (op == "b")  ret = n1 - n2, ans += "-";  else  ret = n1 * n2, ans += "*";  last = op;  }  else  {  num1 = op;  cin >> num2;  int n1 = stoi(num1);  int n2 = stoi(num2);ans += num1;  if (last == "a")  ret = n1 + n2, ans += "+";  else if (last == "b")  ret = n1 - n2, ans += "-";  else  ret = n1 * n2, ans += "*";  }  ans += (num2 + "=" + to_string(ret));  cout << ans << endl;  cout << ans.size() << endl;  }  return 0;  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/71937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB 触发器实现教程

在传统的关系型数据库&#xff08;如 MySQL&#xff09;中&#xff0c;触发器是一种强大的工具&#xff0c;它可以在特定的数据库操作&#xff08;如插入、更新或删除&#xff09;发生时自动执行一段代码。然而&#xff0c;MongoDB 并没有原生内置的触发器概念。不过&#xff0…

C#控制台应用程序学习——3.11

一、整型数字计算 如果我们想执行以下程序&#xff1a;程序提示用户输入一个数字并输出 num 20 的结果&#xff0c;我们的思维应该是这样的&#xff1a; using System;public class Class1 {public static void Main(string[] args){Console.WriteLine("Enter the first…

【C语言】指针篇

目录 C 语言指针概述指针的声明和初始化声明指针初始化指针 指针的操作解引用操作指针算术运算 指针的用途动态内存分配作为函数参数 指针与数组数组名作为指针通过指针访问数组元素指针算术和数组数组作为函数参数指针数组和数组指针指针数组数组指针 函数指针函数指针的定义和…

嵌入式音视频通话SDK组件EasyRTC:全平台设备兼容,智能硬件里的WebRTC调用实践

在万物互联时代&#xff0c;智能硬件设备对实时音视频通信的需求呈现爆发式增长。传统基于PC或移动端的WebRTC方案难以满足嵌入式设备在资源占用、低延迟传输和硬件适配等方面的特殊需求。本文将深入探讨如何通过EasyRTC嵌入式音视频通信SDK在嵌入式设备中实现高效的WebRTC视频…

Aim Robotics电动胶枪:机器人涂胶点胶的高效解决方案

在自动化和智能制造领域&#xff0c;机器人技术的应用越来越广泛&#xff0c;而涂胶和点胶作为生产过程中的重要环节&#xff0c;也逐渐实现了自动化和智能化。Aim Robotics作为一家专注于机器人技术的公司&#xff0c;其推出的电动胶枪为这一领域带来了高效、灵活且易于操作的…

c语言笔记 数组进阶题目的理解

题目&#xff1a;声明一个二维 int 型数组 a&#xff0c;再声明另一个一维数组指针数组 b&#xff0c;使该数组 b 的每一个指针分别指向二维数组 a 中的每一个元素(即每一个一维数组)&#xff0c;然后利用数组 b 计算数组 a 的和。 图解&#xff1a;画图帮助理解 我们要清楚什…

Photo Works在线图片编辑器:一键修复老照片,轻松焕新记忆

★【概况介绍】 今天突然收到我的朋友电脑出故障了,截图给我,我一看就知道这个是缺少必要的组件引起的故障。结合这个问题,我来谈谈自己的解决思路和方法,希望能够帮助到大家。帮助大家是我最开心的事情。以前只是帮朋友解决问题,没有记录下来,刚刚接触到这个平台,刚好可…

FANformer:融合傅里叶分析网络的大语言模型基础架构

近期大语言模型(LLM)的基准测试结果引发了对现有架构扩展性的思考。尽管OpenAI推出的GPT-4.5被定位为其最强大的聊天模型&#xff0c;但在多项关键基准测试上的表现却不及某些规模较小的模型。DeepSeek-V3在AIME 2024评测中达到了39.2%的Pass1准确率&#xff0c;在SWE-bench Ve…

【 IEEE出版 | 快速稳定EI检索 | 往届已EI检索】2025年储能及能源转换国际学术会议(ESEC 2025)

重要信息 主会官网&#xff1a;www.net-lc.net 【论文【】投稿】 会议时间&#xff1a;2025年5月9-11日 会议地点&#xff1a;中国-杭州 截稿时间&#xff1a;见官网 提交检索&#xff1a;IEEE Xplore, EI Compendex, Scopus 主会NET-LC 2025已进入IEEE 会议官方列表!&am…

蓝桥杯练题顺序

有重复,适当选择题目~共229道题&#xff01; 后续会发题解~ STL&#xff1a;9 3100 反转字符串 [string简单]---3100 -CSDN博客 2470 单调栈 [stack简单]---2470 单调栈 [stack简单]-CSDN博客 2254 括号匹配&#xff01; [stack简单]---2254: 括号匹配&#xff01;-CSDN博客 …

react基础语法视图层类组件

react基础语法视图层&类组件 MVVM *区别mvc&mvvm 两者的区别&#xff1a; 数据模型去渲染视图。数据层改了&#xff0c;vue自己会监听到帮我们拿最新的数据去渲染视图&#xff1b;构建数据构建视图&#xff0c;数据驱动的思想。这一套是非常相似的。 视图中的内容改变&…

开发、科研、日常办公工具汇总(自用,持续更新)

主要记录汇总一下自己平常会用到的网站工具&#xff0c;方便查阅。 update&#xff1a;2025/2/11&#xff08;开发网站补一下&#xff09; update&#xff1a;2025/2/21&#xff08;补充一些AI工具&#xff0c;刚好在做AI视频相关工作&#xff09; update&#xff1a;2025/3/7…

requests中post中data=None, json=None两个参数区别

在 requests.post() 方法中&#xff0c;data 和 json 主要用于发送请求体&#xff0c;但它们的作用和格式有所不同。 1. data 参数 用途&#xff1a;用于发送表单数据或原始二进制数据。格式&#xff1a; 可以是 字典&#xff08;dict&#xff09;&#xff08;默认会编码为 a…

51c大模型~合集10

我自己的原文哦~ https://blog.51cto.com/whaosoft/11547799 #Llama 3.1 美国太平洋时间 7 月 23 日&#xff0c;Meta 公司发布了其最新的 AI 模型 Llama 3.1&#xff0c;这是一个里程碑时刻。Llama 3.1 的发布让我们看到了开源 LLM 有与闭源 LLM 一较高下的能力。 Meta …

架构演变 之 超市进化

1. 单机架构 → 小卖部&#xff08;夫妻店&#xff09; 场景&#xff1a;一个老板包揽所有工作——进货、摆货、收银、打扫&#xff0c;店里只有一个小仓库。对应架构&#xff1a;所有功能&#xff08;数据库、业务逻辑、页面&#xff09;都挤在一台服务器上。问题&#xff1a…

ubuntu 和 RV1126 交叉编译Mosqutiio-1.6.9

最近需要交叉编译mosquitto&#xff0c;遇到一些小问题记录一下。 1.众所周知使用它自带的Makefile编译的时候&#xff0c;只需要在编译前&#xff0c;指定它config.mk中的变量&#xff1a;CFLAGS头文件路径 和 LDFLAGS库文件路径就ok&#xff0c;例子如下&#xff1a; expor…

Photoshop 中如何快速抠图?

Photoshop 中如何快速抠图&#xff1f; 抠图是 Photoshop 中的常见操作&#xff0c;无论是去除背景还是提取特定对象&#xff0c;都需要掌握高效的抠图技巧。本文将介绍几种快速抠图的方法&#xff0c;帮助你轻松完成设计任务。 1. 快速选择工具&#xff08;Quick Selection T…

解决 React 中的 Hydration Failed 错误

解决 React 中的 Hydration Failed 错误 React 的 服务器端渲染&#xff08;SSR&#xff09;通过在服务器端生成 HTML 并将其发送给客户端&#xff0c;帮助提高页面加载速度和搜索引擎优化&#xff08;SEO&#xff09;。然而&#xff0c;在进行 SSR 后&#xff0c;React 需要进…

如何使用postman来测试接口

一、postman的介绍与下载 可参考&#xff1a; https://blog.csdn.net/freeking101/article/details/80774271 二、api获取网站 阿里云API应用市场 地址&#xff1a;云市场_镜像市场_软件商店_建站软件_服务器软件_API接口_应用市场 - 阿里云 三、具体测试过程 可模拟浏览…

数据库系统概论(二)数据模型

数据库系统概论&#xff08;二&#xff09;数据模型 数据库系统概论&#xff08;二&#xff09;数据模型前言一、数据建模二、概念模型三、数据模型的三要素四、层次模型五、网状模型六、关系模型 总结&#xff08;核心概念速记&#xff09;&#xff1a; 数据库系统概论&#x…