頻道欄目
首頁 > 資訊 > 其他綜合 > 正文

第八周項目1建立順序串的算法庫

16-10-15        來源:[db:作者]  
收藏   我要投稿
問題描述及代碼:

#ifndef SQSTRING_H_INCLUDED
#define SQSTRING_H_INCLUDED
/*   
*煙臺大學計控學院    
*作    者:王力源   
*完成日期:2016年10月14日
*問題描述:定義順序串的存儲結構,實現其基本運算,并完成測試。 
  要求: 
  1、頭文件sqString.h中定義數據結構并聲明用于完成基本運算的函數。對應基本運算的函數包括:

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);   //輸出串1
2、在sqString.cpp中實現這些函數 
3、在main函數中完成測試,包括如下內容: 
(1)建立串s:abcdefghijklmn和串s1:123 
(2)輸出串s和s1 
(3)輸出串s的長度 
(4)在串s的第9個字符位置插入串s1而產生串s2 
(5)輸出串s2 
(6)刪除串s第2個字符開始的5個字符而產生串s2 
(7)輸出串s2 
(8)將串s第2個字符開始的5個字符替換成串s1而產生串s2 
(9)輸出串s2 
(10)提取串s的第2個字符開始的10個字符而產生串s3 
(11)輸出串s3 
(12)將串s1和串s2連接起來而產生串s4 
(13)輸出串s4 

*/

#endif // SQSTRING_H_INCLUDED
(1)sqString.h #ifndef SQSTRING_H_INCLUDED #define SQSTRING_H_INCLUDED #define MaxSize 100 //最多的字符個數 typedef struct { char data[MaxSize]; //定義可容納MaxSize個字符的空間 int length; //標記當前實際串長 } 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); //輸出串 #endif // SQSTRING_H_INCLUDED (2)sqString.cpp #include"sqString.h" #include #include void StrAssign(SqString &s,char cstr[]) //字符串常量cstr賦給串s { int i; for(i=0;cstr[i]!='\0';i++) s.data[i]=cstr[i]; s.length=i; } 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>s.length+1) return str; for(k=0;ks.length||i+j>s.length) return str; for(k=0;k0) { for(i=0;i int main() { SqString s,s1,s2,s3,s4; printf("鏈串的基本運算如下:\n"); printf(" (1)建立串s和串s1\n"); StrAssign(s,"abcdefghijklmn"); printf(" (2)輸出串s:"); DispStr(s); StrAssign(s1,"123"); printf(" (2)輸出串s1:"); DispStr(s1); printf(" (3)串s的長度:%d\n",StrLength(s)); printf(" (4)在串s的第9個字符位置插入串s1而產生串s2\n"); s2=InsStr(s,9,s1); printf(" (5)輸出串s2:"); DispStr(s2); printf(" (6)刪除串s第2個字符開始的5個字符而產生串s2\n"); s2=DelStr(s,2,3); printf(" (7)輸出串s2:"); DispStr(s2); printf(" (8)將串s第2個字符開始的5個字符替換成串s1而產生串s2\n"); s2=RepStr(s,2,5,s1); printf(" (9)輸出串s2:"); DispStr(s2); printf(" (10)提取串s的第2個字符開始的10個字符而產生串s3\n"); s3=SubStr(s,2,10); printf(" (11)輸出串s3:"); DispStr(s3); printf(" (12)將串s1和串s2連接起來而產生串s4\n"); s4=Concat(s1,s2); printf(" (13)輸出串s4:"); DispStr(s4); return 0; } 運行結果: 


相關TAG標簽
上一篇:臺積電:絕大多數7nm客戶都會轉向6nm_IT新聞_博客園
下一篇:最后一頁
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片