第八周專案三 順序串演算法

2021-07-23 21:38:31 字數 3243 閱讀 4541

問題及**:

/**檔名稱:1.cpp

*完成日期:2023年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);

*輸入描述:字串

*程式輸出:完成測試後的執行結果

*/

sqstring.h:

#include #define maxsize 1000

typedef struct //定義順序串型別

sqstring;

void strassign(sqstring &s,char cstr); //字串常量cstr賦給串s

void strcopy(sqstring &s,sqstring t); //串t複製給串s

bool strequal(sqstring s,sqstring t); //判串相等

int strlength(sqstring s); //求串長

sqstring concat(sqstring s,sqstring t); //串連線

sqstring substr(sqstring s,int i,int j); //求子串

sqstring insstr(sqstring s1,int i,sqstring s2); //串插入

sqstring delstr(sqstring s,int i,int j) ; //串刪去

sqstring repstr(sqstring s,int i,int j,sqstring t); //串替換

void dispstr(sqstring s); //輸出串

sqstring.cpp:

#include "sqstring.h"

void strassign(sqstring &s,char cstr) //字串常量cstr賦給串s

void strcopy(sqstring &s,sqstring t) //串t複製給串s

{ int i;

for(i=0;is.length || j<=0 || i+j-1>s.length)

return str; //引數不正確時直接返回空串

for(k=i-1;ks1.length+1)

return str;

for(j=0;js.length || i+j-1>s.length)

return str;

for(k=0;ks.length || i+j-1>s.length)

return str;

for(k=0;k0)

{for(i=0;i#include "sqstring.h"

//以下為自定義函式

void trans(sqstring &s, char c1, char c2) //字串s中所有值為c1的字元換成值為c2的字元

{ int i;

for(i=0;i#include "sqstring.h"

//以下為自定義函式

void invert(sqstring &s) //將已知字串所有字元倒過來重新排列

{ int i,j;

char t;

i=0,j=s.length-1;

while(i#include "sqstring.h"

//以下為自定義函式

void dellchar(sqstring &s, char c) //從串s中刪除其值等於c的所有字元

{ int i=0,k=0; //k記錄值等於c的字元個數

while(i#include "sqstring.h"

//以下為自定義函式

sqstring commchar(sqstring s1,sqstring s2) //有兩個串s1和s2,設計乙個演算法求乙個這樣的串,該串中的字元是s1和s2中公共字元

{ sqstring str;

int i,j,t=0;

for(i=0;i執行結果:

知識點總結:順序串的基本演算法

學習心得:通過這個專案,加深了我對於順序串基本演算法的認知與理解。

第八周 專案三 順序串演算法

順序串演算法庫 sqstring.h ifndef sqstring h included define sqstring h included define maxsize 100 最多的字元個數 typedef struct sqstring void strassign sqstring s,...

第八周 專案三 順序串演算法

問題及描述 煙台大學計算機與控制工程學院 完成日期 2016年10月20號 問題描述 採用順序儲存方式儲存串,實現下列演算法並實現。1 試著編寫演算法實現將字串s中所有值為c1的字元換成值為c2的字元。2 試著編寫演算法,實現將一直字串所有字元倒過來重新排列。如abcdef改為fedcba.3 從串...

第八周 專案三 順序串演算法

順序串演算法庫 注 在標頭檔案中加上相應的函式宣告。1 的實現函式 void trans sqstring s,char c1,char c2 1 執行結果 原來 strassign s,messages 執行後 2 的實現函式 void invert sqstring s 2 執行結果 原來 st...