news 2026/6/23 21:16:47

紧急措施 、 过滤多余的空格 与 单词的长度

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
紧急措施 、 过滤多余的空格 与 单词的长度

紧急措施

这一题给出了要输入的行数;用for循环一次读取每行数据并处理即可;定义四个变量:“account”“code”“email”与“myemail”(用于判断是否为要处理的一行数据)。如果“myemail == email”,那么便对code(密码)进行大小写转换操作即可。然后输出“account”“code”“email”。并在for循环外定义一个布尔值“nofind”,用于判定数据中有无要处理的数据。

#include<bits/stdc++.h>
using namespace std;
int main (){
string myemail;//我的email
int N;//账号数
cin >> myemail;
cin >> N;
bool nofind = true;//用于标记是否找到
for(int i = 0;i < N;i ++)
{
string account,code,email;
cin >> account >> code >> email;
// cout << account << ' ' << code << ' ' << email << endl;
if(myemail == email){
nofind = false;//标记“找到了”
for(char &c : code){//更改密码
if(islower(c)){c = toupper(c);}//小写转大写
else if (isupper(c)){c = tolower(c);}//大写转小写
}
cout << account << ' ' << code << ' ' << endl;//输出更改后的账号与密码
}
}
if(nofind) cout << "empty" << endl;
return 0;
}

过滤多余的空格

这道题有思路就很简单。依据题意我们用getline读取数据并存放到字符串中,在字符串遍历中进行空格判定操作。先定义一个布尔值变量用于标记当前字符之前是否为空格,然后开始遍历,不是空格就添加到新的字符串,并更新bool值为false;如果是空格,进入判定:bool值是否为false(即之前不是空格),为真,添加空格到新字符串,并且更新bool为true。最后输出新字符串即可。

注意:不要在原来字符串上进行操作,那样会影响字符串遍历。

#include<bits/stdc++.h>
using namespace std;
int main (){
string s;
getline(cin,s);//读取一整行输入
string result = "";//新的字符串,用于存放处理后的字符串
bool inSpace = false;//标记是否正在处理连续空格

//字符串处理
for(char &c : s){
if(c != ' '){//遍历字符串,非空格则添加到新字符串
result += c;
inSpace = false;//重置标记
}else{
if(!inSpace){
result += ' ';//只保留一个空格
inSpace = true;//设置标记位
}
//如果inSpace为true,说明是连续空格的一部分,会直接跳过接下来的空格
}
}
cout << result << endl;//输出结果
return 0;
}

单词的长度

这道题可以用上一道题的框架,具体原理不必再解释。直接把删除空格操作改为输出单词长度并重置即可。

#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
getline(cin,s);

int i = 0;//i为单词长度
bool inSpace = false;//用于记录当前字符前是否为空格
for(char &c : s){
if(c != ' ') {//当前字符不是空格
i += 1;//单词长度加一
inSpace = false;//更新bool状态
}else{//是空格
if(!inSpace){//字符前面不是空格
cout << i << ',';//输出单词长度与逗号
i = 0;//重置单词长度
inSpace = true;//更新bool状态
}
}
}
cout << i << endl;//最后不会遇到空格,因此此时的i即为最后的单词长度。
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 22:49:20

Flink学习笔记:多流 Join

前面我们已经了解了 Flink 几个核心概念&#xff0c;分别是时间、Watermark 已经窗口。今天我们来一起了解下 Flink 是怎么进行多个流的 Join 的。我们今天从两个流的 Join 来入手&#xff0c;扩展到多个流也是一样的道理。Flink 中的 Join 可以分为两种&#xff1a;Window Joi…

作者头像 李华
网站建设 2026/6/23 10:07:02

AI产品经理必读:构建智能交互系统的终极指南!

简介 文章介绍了构建智能交互系统的关键要点&#xff1a;需求分析需考虑环境特征、用户状态和任务目标&#xff1b;技术选型应平衡成本与效果&#xff0c;避免盲目追求大模型&#xff1b;交互设计要消除歧义&#xff0c;关注情感交互&#xff1b;建立数据闭环实现持续优化&…

作者头像 李华
网站建设 2026/6/23 13:05:01

谷歌浏览器性能面板使用指南

谷歌浏览器性能面板使用指南一、打开性能面板的方法1. 访问方式按 F12 或 CtrlShiftI (Windows/Linux) / CmdOptionI (Mac) 打开开发者工具选择 "Performance" 选项卡或使用快捷键 CtrlShiftE (Windows/Linux) / CmdShiftE (Mac)2. 录制配置刷新页面录制: 点击刷新按…

作者头像 李华
网站建设 2026/6/23 15:18:12

警惕绿色积分陷阱!一分钟揭秘消费骗局

绿色消费积分爆火,但背后暗藏风险&#xff01;提醒身边人 别让“绿色”变“血色”&#xff01;正规模式&#xff1a;国家鼓励积分兑换&#xff0c;需有实体支撑&#xff0c;用户消费获积分&#xff0c;逐步释放兑换商品&#xff0c;三方共建保障价值。但骗局套路更需警惕&#…

作者头像 李华
网站建设 2026/6/23 16:13:42

13、CentOS网络管理全攻略

CentOS网络管理全攻略 在CentOS系统中,网络管理是系统管理的重要组成部分。本文将详细介绍多种网络管理命令和工具的使用方法,帮助你更好地管理和维护CentOS系统的网络。 路由表管理 在CentOS中,可以使用 ip route 和 route 命令来管理路由表。 使用 ip route 命令…

作者头像 李华
网站建设 2026/6/23 18:33:50

技术实践:用大模型平台重构医疗数据分析Pipeline

各位技术同仁&#xff0c;大家好。我所在团队长期负责支持医院的临床科研数据分析项目。过去&#xff0c;我们为每一个研究课题搭建定制化的数据分析Pipeline&#xff1a;数据提取 → 清洗 → 特征工程 → 模型训练/统计分析 → 可视化报告。这套模式存在诸多痛点&#xff1a;开…

作者头像 李华