| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 试解PTA《20211114-字符串练习》,有需要的同学来看看吧; -> 正文阅读 |
|
[数据结构与算法]试解PTA《20211114-字符串练习》,有需要的同学来看看吧; |
一、前言:? ? ? ? 您好,我是夏日弥,本次为大家带来每周的例行PTA测试习题的讲解; ? ? ? ? 值得注意的是,笔者的编程水平有限,大部分的题目都不是最优解,如果您有更优秀的解决方案,请务必私信我,十分渴望向您学习; ? ? ? ? 本次带来五道编程题讲解; ????????涉及字符串string的使用,包括字符串遍历,拼接,字符串的整体输入; ? ? ? ? 涉及标记变量使用; ? ? ? ? 简单介绍string查找函数; 目录 ? ? ? ? 感谢您的阅读,让我们来看看今天的题目吧; 二、例题部分;? ? ? ? 2-1、字符串输入输出练习???????? ? 字符串输入输出练习 (10 分) 输入起始位置m、长度l及字符串s,要求输出字符串s从第m个字符开始的长度为l的子串。 输入格式:测试数据有多组,处理到文件尾。 每组测试数据输入一行,首先是以一个空格间隔的两个整数m、l,分别表示起始位置和长度,然后在一个空格之后是一个字符串s(长度不超过80,可能包含空格)。测试数据保证取得的结果字符串至少包含一个字符。 输出格式:对于每组测试,输出字符串s从第m个字符开始的长度为l的子串(若长度不足l,则只需输出从第m个字符开始到最后一个字符结束的子串)。每两组测试数据之间留一个空行。 输入样例:
输出样例:
?2.2.1、题解
这里有个小细节:执行完?scanf("%d %d",&n,&m); 后 会直接执行getline(cin,a);? a会直接读入你的空格,即此时的a为
而非
所以我们的起点标记直接用? top=n;标识就可以了,如果您不喜欢的话,可以用getchar()来顶替掉那个空格,您的起点标记再标记为 top=n-1;就可以了 ? ? ? ??2-2 检查密码 (15 分)本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点? 输入格式:输入第一行给出一个正整数 N(≤?100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。 注意:?题目保证不存在只有小数点的输入。 输出格式:对每个用户的密码,在一行中输出系统反馈信息,分以下5种:
输入样例:
输出样例:
结尾无空行 2.2.1、题解
? ? ? ? 这道题的思想在于判断标记f1,f2,f3,f4; 我们的思路就是遍历字符串,对每一个字符记录它的性质, 如果是字母,我们就让f1=1, 如果是数字,我们就让f2=1, 如果是‘.’,我们就让f3=1, 如果它不是字母,数字,小数点,我们就让f4=1; 让f=1,就是拨亮小灯泡,表示我有!我真的有!否则它就是灭的,我没有...... ? ? ? ? 对比2-1的标记变量,我们可以发现,标记变量的使用是很普遍的;我们一般把这种变量任命为flag或者_sucess,就像一个bool一样,0是错,是失败;1是对,是正确; ???????? 2-3 字符串-掐头去尾 (10 分)输入字符串(长度大于2),删除首尾两个字符,输出结果字符串 输入格式:键盘输入一个字符串,长度大于2小于80 输出格式:去掉首尾两个字符后输出 输入样例:在这里给出一组输入。例如:
结尾无空行 输出样例:在这里给出相应的输出。例如:
结尾无空行 2.3.1、题解
水题,不多说; 2-4 字符替换 (10 分)从键盘上输入一个字符串(最多80个字符),将其中所有的空格字符用字符“&”替换,然后输出替换后的字符串,最后换行。 输入格式:从键盘上输入一个字符串(最多80个字符)。 输出格式:输出替换后的字符串,最后换行。 输入样例:
输出样例:
2.4.1、题解
?还是遍历一遍字符串 不行,不能在这里摆大烂!给您展示一下字符串的拼接吧!
2-5 字符串排序 (20 分)本题要求编写程序,读入5个字符串,按由小到大的顺序输出。 输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。 输出格式:按照以下格式输出排序后的结果:
输入样例:
结尾无空行 输出样例:
结尾无空行 2.5.1、题解
//注意!!!!!知识点!!!!字符串的比较是按字典序比较的!!! 字符串s1=“abcde”; 字符串s2=“bcd”; 计算机会先比对s1和s2第一个字符的ASCII码值; 因为‘b’的ASCII码值大于‘a’的,所以计算机认为s1>s2; 如果第一个字符一样,则比对第二个字符,称为“字典序比较”; 这道题涉及了字符串数组也得讲讲。。。。 是的,您没有看错!字符串就是那么好用,它不仅可以直接复制,拼接,调动丰富的函数,还允许开数组喔! 需要注意的是,您必须调用头文件<string.h>,否则您无法调动string; string?变量名;? ? 为声明一个string,可以不用声明长度,不像char[100],而且可以灵活伸长缩短; 介绍两个string小函数跟大家打声招呼吧:)
??????????? getline(cin,a);//完整读入字符串a,包含空格;?
三、尾声? ? ? ? 再次感谢您的阅读,本次题目代码均通过严格的样例测试; ? ? ? ? 但笔者难免精力有限,难免会发生错误; ? ? ? ? 如果您再阅读过程中有发现任何的bug,欢迎私信我或者在评论区留言,还望您不吝赐教; ? ? ? ? 特别鸣谢AC-47同学在2-1中提出的格式写法;? ? ? ? ? ? ? ? ?希望对您有所帮助,码字不易,如果您愿意点个赞,那将是夏日弥的无上荣光。 ???????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????????夏日弥死傲娇 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????2021.11.15 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 11:42:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |