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 判斷兩個鍊錶是否相交?給定兩個單鏈表,判斷兩個單鏈表是否相交?假設兩個單鏈表均沒有環 如果鍊錶有交點,那麼他們一定有共同字...