第八周项目3 -顺序库算法

来源:互联网 发布:java特种兵 下册出了吗 编辑:程序博客网 时间:2024/05/22 00:23
问题描述及代码
/**烟台大学计算机控制与工程学院*作者:张雯婧*完成日期:2016年10月14日*问题描述:采用顺序存储方式存储串,实现下列算法并测试:(1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符:void Trans(SqString*&s,char c1,char c2)(2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。void Invert(SqString &s)(3)从串s中删除其值等于c的所有字符。如从message中删除’e’,得到的是mssagvoid DellChar(SqString&s,char c)(4)有两个串s1和s2,设计一个算法求一个这样的串,该串中的字符是s1和s2中公共字符。所谓公共子串,是由在s1中有,且在s2中也有的字符构成的字符。例s1为”message”,s2为”agent”,得到的公共子串是”eage”。???SqString CommChar(SqString s1,SqString s2);*/
(1)中的实现函数和main函数
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;  }#include <stdio.h>  #include "sqString.h"  int main()  {      SqString s;      StrAssign(s, "messages");      Trans(s, 'e', 'a');      DispStr(s);      return 0;  }  
运行结果

(2)中的实现函数和main函数
#include<stdio.h>#include"sq.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;}
运行结果
(3)中的实现函数和main函数
#include<stdio.h>#include"sq.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;}

(4)中的实现函数和main函数
#include<stdio.h>#include"sq.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;}
运行结果

知识点总结
采用顺序存储方式存储串。

0 0
原创粉丝点击