news 2026/6/10 13:36:09

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

作者头像

张小明

前端开发工程师

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/10 8:00:38

梦幻西游,星界云手机搬砖全攻略

兄弟们&#xff0c;你们是不是也被车迟副本的答题环节逼疯过&#xff1f;手动五开刷个副本&#xff0c;光答题就得半小时&#xff0c;结果最后捡箱子还总被抢&#xff1f;别慌&#xff01;今天手把手教你怎么用星界云手机实现10开挂机&#xff0c;实测有效。 一、副本入门避坑指…

作者头像 李华
网站建设 2026/6/10 1:13:47

AI Agent学习路线:2026年最新万字长文,从入门到精通,手把手带你成为大模型领域专家!

简介 本文全面解析了大模型Agent的概念、组成与工作流程。Agent作为能自主决策的软件系统&#xff0c;由LLM推理规划、工具模块和记忆模块构成&#xff0c;通过感知、推理、决策、执行和反馈完成复杂任务。文章详细探讨了各部分面临的技术痛点&#xff0c;如推理能力不足、工具…

作者头像 李华
网站建设 2026/6/10 15:35:10

9、Linux文件权限管理与进程管理指南

Linux文件权限管理与进程管理指南 1. 文件所有权管理 在Linux系统中,每个创建的文件或目录都属于一个用户和一个组,分别称为文件所有者和文件组所有者。文件或目录的所有权可以由root用户或文件所有者修改,而组所有权只能由root用户或文件所有者修改,且仅限于他们所属的组…

作者头像 李华
网站建设 2026/6/9 16:34:58

12、进程管理与CentOS网络管理全解析

进程管理与CentOS网络管理全解析 1. 进程管理 在操作系统中,进程管理是一项至关重要的任务。它涉及到对进程的各种操作,如将前台进程挂起至后台、管理后台作业等。 1.1 将前台进程挂起至后台 可以通过以下两个步骤将前台进程移动到后台: 1. 按下 Ctrl + Z ,这会将进…

作者头像 李华
网站建设 2026/6/10 7:04:54

14、CentOS网络管理与安全远程操作指南

CentOS网络管理与安全远程操作指南 1. 网络接口管理 在CentOS系统中,我们可以使用 nmcli 命令来管理网络接口,以下是一些常用操作: - 禁用所有受管理的网络接口: $ nmcli net off临时断开设备以关闭某个网络接口,例如关闭 enp0s8 接口: $ nmcli dev dis enp0s8…

作者头像 李华
网站建设 2026/6/10 8:36:27

17、高级实用工具概述:系统管理与安全增强

高级实用工具概述:系统管理与安全增强 1. 配置 systemd - journald 以持久存储日志 在 Linux 系统中, systemd - journal 默认存储在 /run/log/journal 目录下,但该目录在系统重启时会被清空。其配置文件为 /etc/systemd/journald.conf ,可用于微调日志参数,如存储…

作者头像 李华