日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构(四)串的顺序存储

發布時間:2023/11/30 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构(四)串的顺序存储 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <stdio.h> #include <stdlib.h>#define MAXLEN 255 //定長順序存儲 typedef struct {char ch[MAXLEN]; //每個分量存儲一個字符int length; //串的實際長度 }SString;//串的初始化 bool StrAssign(SString& T, char* chars) {int i = 0, len;char* p;for (len = 0, p = chars; *p != '\0'; p++, len++);//求出chars長度if (len == 0){T.length = 0;return false;}else{for (i = 0; i < len; i++){T.ch[i + 1] = *(chars + i);}T.length = len;}return true;}//復制 bool StrCopy(SString& T, char* s) {int i = 0, len;char* p;for (len = 0, p = s; *p != '\0'; p++, len++);//求出chars長度if (len == 0){T.length = 0;}else{for (i = 0; i < len; i++){T.ch[i + 1] = *(s + i);}T.length = len;}return true;}//判空 bool StrEmpty(SString& T) {if (T.length == 0)return true;return false; }//兩數比較 int StrCompare(SString S, SString T) {int i;for (i = 1; i <= S.length && i <= T.length; i++){if (S.ch[i] != T.ch[i]){return S.ch[i] - T.ch[i];}}return S.length - T.length;}//求串長 int Strlength(SString S) {return S.length;}bool Concat(SString &T, SString S, SString S1) {int i, j;if (S.length + S1.length > MAXLEN){return false;}else{for (i = 0; i < S.length; i++){T.ch[i + 1] = S.ch[i+1];}for (j = 0; j < S1.length; j++){T.ch[i + j + 1] = S1.ch[j+1];}}T.length = S.length + S1.length;return true;}bool SubString(SString& Sub, SString& S, int pos, int len) {if (pos + len - 1 > S.length){return false;}for (int i = pos; i < pos + len; i++){Sub.ch[i - pos + 1] = S.ch[i];}Sub.length = len;return true;}bool ClearString(SString& S) {S.length = 0;return true; }int Index(SString T, SString S) {int m = Strlength(T);int n = Strlength(S);SString q;int i = 1;while (i <= m - n + 1){SubString(q,T,i,n);if (StrCompare(q, S) == 0){return i;}i++;}return -1;}int main() {SString T;SString S;SString S1;char s[20] = "chen";char s1[20] = "en";char s2[20] = "hen";StrAssign(T,s);StrAssign(S, s2);StrAssign(S1, s1);//StrCopy(T, s1);//Concat(T,S,S1);//int ret=StrCompare(S, T);//if (ret > 0)//{// printf("s大\n");//}//else if (ret == 0)//{// printf("s與t相等\n");//}//else//{// printf("t大\n");//}int ret=Index(T,S);if (ret > 0){printf("%d\n",ret);}else if (ret == -1){printf("error\n");}for (int i = 0; i < T.length; i++){printf("%c",T.ch[i+1]);}return 0; }

總結

以上是生活随笔為你收集整理的数据结构(四)串的顺序存储的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。