資料結構實訓作業

2022-05-12 07:52:59 字數 2290 閱讀 7469

1 #include 2

#define datamax 100

3 typedef struct

string;7

//初始化字串

8void initstring(string *s)912

//輸入字串

13void inputstring(string *s)

1422 s->data[i] = '\0'

;23 s->length =i;24}

25//

得到字串的長度

26int getlength(string *s)

2730

//將s2的內容複製到s1

31void copystring(string *s1, string *s2)

3238 s1->length = s2->length;

39 s1->data[i] = '\0'

;40}41

//判斷字串是否相等

42int equalstring(string *s1, string *s2)

4350

for(i = 0; s1->data[i] == s2->data[i] && s1->data[i] != '

\0' && s2->data[i] != '

\0'; i++);

51if(s1->data[i] == s2->data[i])

5255}56

//連線兩個字串

57string concatstring(string *s1, string *s2)

5865

for(i =s1->length,j =0; jlength; i++,j++)

6669 s3.data[i] = '\0'

;70 s3.length = s1->length + s2->length;

71return

s3;72}73

//求子串返回串s的第i個位置開始的j個字元組成的串

74string substring(string *s, int i, int

j)75

81for(int k = 0; k)

8285 s1.length =j;

86return

s1;87}88

//返回子串s2在主串s1中的位置

89int index(string *s1, string *s2)

90101 i = i-j;

102if(j >= s2->length)

103106

}107

}108

//輸出字串

109void dispstr(string *s)

110115 printf("\n"

);116

}117

intmain()

138else

139142 s3 = concatstring(&s1, &s2);

143 printf("

字串s1與字串s2連線之後的字串s3:");

144 dispstr(&s3);

145 printf("

請輸入您需要查詢的子串從第幾個位置開始,長度為多少:");

146 scanf("

%d%d

",&i,&j);

147 s4 = substring(&s1, i, j);

148 printf("

從第%d個位置開始,長度為%d的字串s4:

",i,j);

149 dispstr(&s4);

150 printf("

請輸入您需要查詢位置的子串:");

151getchar();

152 inputstring(&substr);

153 position = index(&s1, &substr);

154if(position == -1

)155

158else

159162 }

在此151 行那個getchar();是必要的,本來有乙個bug看了好久看不出來有什麼問題,後來進行debug除錯,然後發現在給substr中的data陣列裡面第乙個元素竟然是乙個回車符,所以我猜想應該是我輸入的時候有回車符被substr給接收到了,所以我在給substr賦值前加了乙個getchar();去接收那個回車符,然後程式就沒有問題了。解決問題之後感覺又舒服了。

資料結構實訓 joseph環

任務 編號是1,2,n的n個人按照順時針方向圍坐一圈,每個人只有乙個密碼 正整數 一開始任選乙個正整數作為報數上限值m,從第乙個仍開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下乙個人開始重新從1報數,如此下去,直到所有人全部出列為止。設計...

資料結構實訓 各種排序

任務 用程式實現插入法排序 起泡法改進演算法排序 利用插入排序和冒泡法的改進演算法,將使用者隨機輸入的一列數按遞增的順序排好。輸入的資料形式為任何乙個正整數,大小不限。輸出的形式 數字大小逐個遞增的數列。include using namespace std void insertsort int ...

資料結構高階實訓七

題目2題目3 data structure advanced training course notes and algorithm exercises source code 判斷兩個鍊錶是否相交?給定兩個單鏈表,判斷兩個單鏈表是否相交?假設兩個單鏈表均沒有環 如果鍊錶有交點,那麼他們一定有共同字...