第八周项目3-顺序串算法
来源:互联网 发布:淘宝官方客服电话400 编辑:程序博客网 时间:2024/04/30 07:51
1. /*
2. Copyright (c)2016,烟台大学计算机与控制工程学院
3. All rights reserved.
4. 文件名称:第8周项目3-顺序串算法.cpp
5. 作 者:朱建豪
6. 完成日期:2016年10月20日
7. 版 本 号:v1.0
8.
9. 问题描述:采用顺序存储方式存储串,实现下列算法并测试:
10. (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符:
11. void Trans(SqString *&s, char c1, char c2);
12. (2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。
13. void Invert(SqString &s)
14. (3)从串s中删除其值等于c的所有字符。如从message中删除’e’,得到的是mssag。
15. void DellChar(SqString &s, char c)
16. (4)有两个串s1和s2,设计一个算法求一个这样的串,该串中的字符是s1和s2中公共字符。所谓公共子串,是由在s1中有,且在s2中也有的字符构成的字符。
17. 例s1为”message”,s2为”agent”,得到的公共子串是”eage”。
18. SqString CommChar(SqString s1,SqString s2);
19. 输入描述:各种串的输入。
20. 程序输出:各操作后的输出。
21. */
头文件及功能函数详见【顺序串算法库】
(1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符
(1)的实现函数:
[cpp] view plain copy
1. void Trans(SqString &s, char c1, char c2)
2. {
3. int i;
4. for (i=0; i<s.length; i++)
5. if (s.data[i]==c1)
6. s.data[i]=c2;
7. }
(1)的main函数:
[cpp] view plain copy
1. #include <stdio.h>
2. #include "sqString.h"
3. int main()
4. {
5. SqString s;
6. StrAssign(s, "messages");
7. Trans(s, 'e', 'a');
8. DispStr(s);
9. return 0;
10. }
(1)的运行结果:
原来:StrAssign(s, "messages");
(2)的实现函数:
[cpp] view plain copy
1. void Invert(SqString &s)
2. {
3. int i;
4. char temp;
5. for (i=0; i<s.length/2; i++)
6. {
7. temp = s.data[i];
8. s.data[i]=s.data[s.length-i-1];
9. s.data[s.length-i-1] = temp;
10. }
11. }
(2)的main函数:
[cpp] view plain copy
1. #include <stdio.h>
2. #include "sqString.h"
3. int main()
4. {
5. SqString s;
6. StrAssign(s, "abcdefg");
7. Invert(s);
8. DispStr(s);
9. return 0;
10. }
(2)的运行结果:
原来:StrAssign(s, "abcdefg");
(3)的实现函数:
[cpp] view plain copy
1. void DellChar(SqString &s, char c)
2. {
3. int k=0, i=0; //k记录值等于c的字符个数
4. while(i<s.length)
5. {
6. if(s.data[i]==c)
7. k++;
8. else
9. s.data[i-k]=s.data[i];
10. i++;
11. }
12. s.length -= k;
13. }
(3)的main函数:
[cpp] view plain copy
1. #include <stdio.h>
2. #include "sqString.h"
3. int main()
4. {
5. SqString s;
6. StrAssign(s, "message");
7. DellChar(s, 'e');
8. DispStr(s);
9. return 0;
10. }
(3)的运行结果:
原来:StrAssign(s, "message");
(4)的实现函数:
[cpp] view plain copy
1. SqString CommChar(SqString s1,SqString s2)
2. {
3. SqString s3;
4. int i,j,k=0;
5. for (i=0; i<s1.length; i++)
6. {
7. for (j=0; j<s2.length; j++)
8. if (s2.data[j]==s1.data[i])
9. break;
10. if (j<s2.length) //s1.data[i]是公共字符
11. {
12. s3.data[k]=s1.data[i];
13. k++;
14. }
15. }
16. s3.length=k;
17. return s3;
18. }
(4)的main函数:
[cpp] view plain copy
1. #include <stdio.h>
2. #include "sqString.h"
3. int main()
4. {
5. SqString s1, s2, s;
6. StrAssign(s1, "message");
7. StrAssign(s2, "agent");
8. s = CommChar(s1, s2);
9. DispStr(s);
10. return 0;
11. }
(4)的运行结果:
知识点总结:
串的算法的应用。
- 第八周 项目3 顺序串算法
- 第八周--项目3顺序串算法
- 第八周 项目3 顺序串算法
- 第八周项目3 - 顺序串算法
- 第八周项目3顺序串算法
- 第八周-【项目3-顺序串算法】
- 第八周项目3--顺序串算法
- 第八周项目3-顺序串算法
- 第八周项目3-顺序串算法
- (第八周项目3)顺序串算法
- 第八周项目3-顺序串算法
- 第八周项目3--顺序串算法
- 第八周--项目3-顺序串算法
- 第八周项目3-顺序串算法
- 第八周项目3-顺序串算法
- 第八周项目3-顺序串算法
- 第八周项目3-顺序串算法
- 【第八周项目3-顺序串算法】
- Python-数字千分位的处理
- Android快速开发系列 10个常用工具类
- javascript cloneNode()方法
- 文章标题
- IE 8日期兼容问题
- 第八周项目3-顺序串算法
- 第8周项目2-建立链串的算法库
- Android应用性能优化之使用SparseArray替代HashMap
- Scala语言扫盲第二篇:变量定义与控制结构
- c++封装dll供c#调用
- 公司制度不完善 管理不均衡
- aidl
- 2016年10月21日 关于文件的加载速度和加载顺序
- 这些信号暗藏玄机,不知道要吃大亏!