第八周 项目三--顺序串算法
- /*
- * Copyright (c)2016,烟台大学计算机与控制工程学院
- * All rights reserved.
- * 文件名称:wu.cpp
- * 作 者:陈朋
- * 完成日期:2016年10月21日
- * 版 本 号:v1.0
- *问题描述:采用顺序存储方式存储串,实现下列算法并测试:
- (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符:
- void Trans(SqString *&s, char c1, char c2);
- (2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。
- void Invert(SqString &s)
- (3)从串s中删除其值等于c的所有字符。如从message中删除’e’,得到的是mssag。
- void DellChar(SqString &s, char c)
- (4)有两个串s1和s2,设计一个算法求一个这样的串,该串中的字符是s1和s2中公共字符。
- 所谓公共子串,是由在s1中有,且在s2中也有的字符构成的字符。例s1为”message”,s2为”agent”,得到的公共子串是”eage”。
- SqString CommChar(SqString s1,SqString s2);
- *输入描述:无
- *程序输出:测试数据
- */
(1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符:
- #include <stdio.h>
- #include "sqString.h"
- void Trans(SqString &s, char c1, char c2)
- {
- int i;
- for (i=0; i<s.length; i++)
- if (s.data[i]==c1)
- s.data[i]=c2;
- }
- int main()
- {
- SqString s;
- StrAssign(s, "messages");
- Trans(s, 'e', 'a');
- DispStr(s);
- return 0;
- }
- <img src="https://img-blog.csdn.net/20161020105325934?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
- (2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。
- <pre class="cpp" name="code">#include <stdio.h>
- #include "sqString.h"
- void Invert(SqString &s)
- {
- int i;
- char temp;
- for (i=0; i<s.length/2; i++)
- {
- temp = s.data[i];
- s.data[i]=s.data[s.length-i-1];
- s.data[s.length-i-1] = temp;
- }
- }
- int main()
- {
- SqString s;
- StrAssign(s, "abcdefg");
- Invert(s);
- DispStr(s);
- return 0;
- }
- <img src="https://img-blog.csdn.net/20161020105602172?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
- (3)从串s中删除其值等于c的所有字符。如从message中删除’e’,得到的是mssag。
- #include <stdio.h>
- #include "sqString.h"
- void DellChar(SqString &s, char c)
- {
- int k=0, i=0; //k记录值等于c的字符个数
- while(i<s.length)
- {
- if(s.data[i]==c)
- k++;
- else
- s.data[i-k]=s.data[i];
- i++;
- }
- s.length -= k;
- }
- int main()
- {
- SqString s;
- StrAssign(s, "message");
- DellChar(s, 'e');
- DispStr(s);
- return 0;
- }
- <img src="https://img-blog.csdn.net/20161020105812326?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
(4)有两个串s1和s2,设计一个算法求一个这样的串,该串中的字符是s1和s2中公共字符。所谓公共子串,是由在s1中有,且在s2中也有的字符构成的字符。例s1为”message”,s2为”agent”,得到的公共子串是”eage”。
- #include <stdio.h>
- #include "sqString.h"
- SqString CommChar(SqString s1,SqString s2)
- {
- SqString s3;
- int i,j,k=0;
- for (i=0; i<s1.length; i++)
- {
- for (j=0; j<s2.length; j++)
- if (s2.data[j]==s1.data[i])
- break;
- if (j<s2.length) //s1.data[i]是公共字符
- {
- s3.data[k]=s1.data[i];
- k++;
- }
- }
- s3.length=k;
- return s3;
- }
- int main()
- {
- SqString s1, s2, s;
- StrAssign(s1, "message");
- StrAssign(s2, "agent");
- s = CommChar(s1, s2);
- DispStr(s);
- return 0;
- }
- <img src="https://img-blog.csdn.net/20161020105917254?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
- 知识点总结:
- 在算法库的基础上多方法实现。
第八周 项目三--顺序串算法相关推荐
- 数据结构上机实践第八周项目3-顺序串算法
顺序串算法 本次实践项目要求如下: 采用顺序存储方式存储串,实现下列算法并测试: (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符: void Trans(SqString * ...
- 第八周项目3-顺序串算法
这几个算法的实现用到了之前写的顺序串算法库! #include<bits/stdc++.h> #include"../顺序串算法库/shunxuchuan.h" usi ...
- 数据结构上机实践第八周项目1- 建立顺序串的算法库
建立顺序串的算法库 本次实践将建立顺序串的算法库,这样可以方便的将此算法运用于我们的所需的工程中,简化操作. 本次实践将用到多文件组织工程的建立,建立方法可以点击此处参照.(工程环境:Visual C ...
- 数据结构上机实践第八周项目4-字符串加密
字符串加密 密码在我们的生活中很常见,现在的加密算法最常用的是MD5和SHA512散列式算法,最早的密码加密方式很简单,容易被破译,但是却引领信息安全的潮流,本次实践,将实现最早的字符串加密方式,采用 ...
- 数据结构上机实践第八周项目2- 建立链串的算法库
建立链串的算法库 一般每一种数据结构都不会局限于在连续空间内的存取,那我们的串自然也不反常,本次实践将建立链串的算法库,应用于有需求的工程当中,提高程序的容错性. 本次实践依然会用到多文件组织工程的建 ...
- 第八周项目实践6 KMP算法(串的模式匹配)
sqString.h #ifndef SqString_H_INCLUDED #define SqString_H_INCLUDED#define MaxSize 100 //最多的字符个数 type ...
- 数据结构上机实践第八周项目9-广义表算法库及应用
广义表算法库及应用 为了丰富算法库,以应对各类工程的需要,本次实践将进行广义表算法库的建立以及应用. 项目要求一: 建立广义表算法库,包括: ① 头文glist.h,定义数据类型,声明函数: ② ...
- 第八周项目三-指向学生类的指针
<pre name="code" class="cpp">/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All righ ...
- java 星期顺序_第8周 【项目3-顺序串算法】
/* *Copyright (c)2017,烟台大学计算机与控制工程学院 *All rights reservrd. *作者:李欣豪 *完成时间:2017年12月14日 *版本号:v1.0 *问题描 ...
- 第七周项目三-用多文件组织多个类的程序
/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年4月13日*版 本 号:v1. ...
最新文章
- 高级网络配置《 bond team桥接 》的建立
- oracle个性化,Oracle:个性化营销成功的五细则
- AWS — AWS 上的 NFV
- Ubuntu 12.04自带包安装GLPI IT资产管理软件
- 使用ifstream和getline读取文件内容[c++]
- OpenGL学习一:OpenGL简介
- 计算机应用离散数学,结合计算机应用的离散数学教学研究.pdf
- 动态EXCEL数据透视表
- 2022年度嵌入式C语言面试题库(含答案)
- 网易游戏:游戏测试是一个怎样的行业?
- 数学模板-BSGSEXBSGS
- 信息学奥赛一本通:1135:配对碱基链
- Python Numpy的数组array和矩阵matrix
- Windows Server 2008 R2 搭建ASP网站
- 研发团队管理:IT研发中项目和产品原来区别那么大,项目级的项目是项目,产品级的项目是产品!!!
- 【STM32】通过RTThread驱动W25QXXX
- [R语言]手把手教你如何绘图(万字)
- 软件产品化, 国内IT人之痛
- 跑酷游戏-第13届蓝桥杯Scratch国赛真题第3题
- 小蓝单车的“死法”:从梦幻开场到资金断链