1. /*
  2. * Copyright (c)2016,烟台大学计算机与控制工程学院
  3. * All rights reserved.
  4. * 文件名称:wu.cpp
  5. * 作    者:陈朋
  6. * 完成日期:2016年10月21日
  7. * 版 本 号:v1.0
  8. *问题描述:采用顺序存储方式存储串,实现下列算法并测试:
  9. (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符:
  10. void Trans(SqString *&s, char c1, char c2);
  11. (2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。
  12. void Invert(SqString &s)
  13. (3)从串s中删除其值等于c的所有字符。如从message中删除’e’,得到的是mssag。
  14. void DellChar(SqString &s, char c)
  15. (4)有两个串s1和s2,设计一个算法求一个这样的串,该串中的字符是s1和s2中公共字符。
  16. 所谓公共子串,是由在s1中有,且在s2中也有的字符构成的字符。例s1为”message”,s2为”agent”,得到的公共子串是”eage”。
  17. SqString CommChar(SqString s1,SqString s2);
  18. *输入描述:无
  19. *程序输出:测试数据
  20. */

(1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符:

[cpp] view plaincopy
  1. #include <stdio.h>
  2. #include "sqString.h"
  3. void Trans(SqString &s, char c1, char c2)
  4. {
  5. int i;
  6. for (i=0; i<s.length; i++)
  7. if (s.data[i]==c1)
  8. s.data[i]=c2;
  9. }
  10. int main()
  11. {
  12. SqString s;
  13. StrAssign(s, "messages");
  14. Trans(s, 'e', 'a');
  15. DispStr(s);
  16. return 0;
  17. }
  18. <img src="https://img-blog.csdn.net/20161020105325934?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
[cpp] view plaincopy
  1. (2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。
[cpp] view plaincopy
  1. <pre class="cpp" name="code">#include <stdio.h>
  2. #include "sqString.h"
  3. void Invert(SqString &s)
  4. {
  5. int i;
  6. char temp;
  7. for (i=0; i<s.length/2; i++)
  8. {
  9. temp = s.data[i];
  10. s.data[i]=s.data[s.length-i-1];
  11. s.data[s.length-i-1] = temp;
  12. }
  13. }
  14. int main()
  15. {
  16. SqString s;
  17. StrAssign(s, "abcdefg");
  18. Invert(s);
  19. DispStr(s);
  20. return 0;
  21. }
[cpp] view plaincopy
  1. <img src="https://img-blog.csdn.net/20161020105602172?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
[cpp] view plaincopy
  1. (3)从串s中删除其值等于c的所有字符。如从message中删除’e’,得到的是mssag。
[cpp] view plaincopy
  1. #include <stdio.h>
  2. #include "sqString.h"
  3. void DellChar(SqString &s, char c)
  4. {
  5. int k=0, i=0;   //k记录值等于c的字符个数
  6. while(i<s.length)
  7. {
  8. if(s.data[i]==c)
  9. k++;
  10. else
  11. s.data[i-k]=s.data[i];
  12. i++;
  13. }
  14. s.length -= k;
  15. }
  16. int main()
  17. {
  18. SqString s;
  19. StrAssign(s, "message");
  20. DellChar(s, 'e');
  21. DispStr(s);
  22. return 0;
  23. }
[cpp] view plaincopy
  1. <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”。
[cpp] view plaincopy
  1. #include <stdio.h>
  2. #include "sqString.h"
  3. SqString CommChar(SqString s1,SqString s2)
  4. {
  5. SqString s3;
  6. int i,j,k=0;
  7. for (i=0; i<s1.length; i++)
  8. {
  9. for (j=0; j<s2.length; j++)
  10. if (s2.data[j]==s1.data[i])
  11. break;
  12. if (j<s2.length)            //s1.data[i]是公共字符
  13. {
  14. s3.data[k]=s1.data[i];
  15. k++;
  16. }
  17. }
  18. s3.length=k;
  19. return s3;
  20. }
  21. int main()
  22. {
  23. SqString s1, s2, s;
  24. StrAssign(s1, "message");
  25. StrAssign(s2, "agent");
  26. s = CommChar(s1, s2);
  27. DispStr(s);
  28. return 0;
  29. }
[cpp] view plaincopy
  1. <img src="https://img-blog.csdn.net/20161020105917254?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
[cpp] view plaincopy
  1. 知识点总结:
[cpp] view plaincopy
  1. 在算法库的基础上多方法实现。
[cpp] view plaincopy
[cpp] view plaincopy

第八周 项目三--顺序串算法相关推荐

  1. 数据结构上机实践第八周项目3-顺序串算法

    顺序串算法 本次实践项目要求如下: 采用顺序存储方式存储串,实现下列算法并测试:  (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符:  void Trans(SqString * ...

  2. 第八周项目3-顺序串算法

    这几个算法的实现用到了之前写的顺序串算法库! #include<bits/stdc++.h> #include"../顺序串算法库/shunxuchuan.h" usi ...

  3. 数据结构上机实践第八周项目1- 建立顺序串的算法库

    建立顺序串的算法库 本次实践将建立顺序串的算法库,这样可以方便的将此算法运用于我们的所需的工程中,简化操作. 本次实践将用到多文件组织工程的建立,建立方法可以点击此处参照.(工程环境:Visual C ...

  4. 数据结构上机实践第八周项目4-字符串加密

    字符串加密 密码在我们的生活中很常见,现在的加密算法最常用的是MD5和SHA512散列式算法,最早的密码加密方式很简单,容易被破译,但是却引领信息安全的潮流,本次实践,将实现最早的字符串加密方式,采用 ...

  5. 数据结构上机实践第八周项目2- 建立链串的算法库

    建立链串的算法库 一般每一种数据结构都不会局限于在连续空间内的存取,那我们的串自然也不反常,本次实践将建立链串的算法库,应用于有需求的工程当中,提高程序的容错性. 本次实践依然会用到多文件组织工程的建 ...

  6. 第八周项目实践6 KMP算法(串的模式匹配)

    sqString.h #ifndef SqString_H_INCLUDED #define SqString_H_INCLUDED#define MaxSize 100 //最多的字符个数 type ...

  7. 数据结构上机实践第八周项目9-广义表算法库及应用

    广义表算法库及应用 为了丰富算法库,以应对各类工程的需要,本次实践将进行广义表算法库的建立以及应用. 项目要求一: 建立广义表算法库,包括:  ① 头文glist.h,定义数据类型,声明函数:  ② ...

  8. 第八周项目三-指向学生类的指针

    <pre name="code" class="cpp">/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All righ ...

  9. java 星期顺序_第8周 【项目3-顺序串算法】

    /* *Copyright  (c)2017,烟台大学计算机与控制工程学院 *All rights reservrd. *作者:李欣豪 *完成时间:2017年12月14日 *版本号:v1.0 *问题描 ...

  10. 第七周项目三-用多文件组织多个类的程序

    /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年4月13日*版 本 号:v1. ...

最新文章

  1. 高级网络配置《 bond team桥接 》的建立
  2. oracle个性化,Oracle:个性化营销成功的五细则
  3. AWS — AWS 上的 NFV
  4. Ubuntu 12.04自带包安装GLPI IT资产管理软件
  5. 使用ifstream和getline读取文件内容[c++]
  6. OpenGL学习一:OpenGL简介
  7. 计算机应用离散数学,结合计算机应用的离散数学教学研究.pdf
  8. 动态EXCEL数据透视表
  9. 2022年度嵌入式C语言面试题库(含答案)
  10. 网易游戏:游戏测试是一个怎样的行业?
  11. 数学模板-BSGSEXBSGS
  12. 信息学奥赛一本通:1135:配对碱基链
  13. Python Numpy的数组array和矩阵matrix
  14. Windows Server 2008 R2 搭建ASP网站
  15. 研发团队管理:IT研发中项目和产品原来区别那么大,项目级的项目是项目,产品级的项目是产品!!!
  16. 【STM32】通过RTThread驱动W25QXXX
  17. [R语言]手把手教你如何绘图(万字)
  18. 软件产品化, 国内IT人之痛
  19. 跑酷游戏-第13届蓝桥杯Scratch国赛真题第3题
  20. 小蓝单车的“死法”:从梦幻开场到资金断链

热门文章

  1. 图神经网络在知识图谱中的应用
  2. java实现fp-growth算法
  3. 双链路是什么意思_双链路DVI是什么意思 工作原理是什么
  4. Word文档怎么取消密码
  5. 苹果雪豹操作系统正式版_大家一起来聊聊电脑操作系统那些事
  6. 检测网站CDN是否生效
  7. redis 中pipline,mset, mget使用对比
  8. Mac m1安装jmeter
  9. 数学分析与高等代数考研真题详解--苏大卷
  10. Docker安装ElasticSearch 版本7.6.2