From 42e00dca0dd1b88adf525ab59af26638b8fc1aef Mon Sep 17 00:00:00 2001 From: Xu Bai <1373953675@qq.com> Date: Sat, 6 Jul 2019 22:39:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=B2=E5=88=9D=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _03.串/01串_String.c | 318 +++++++++++++++++++++++++++++++++++++++++++ _03.串/_a.串.c | 49 +++++++ a.out | Bin 51956 -> 49349 bytes 3 files changed, 367 insertions(+) create mode 100644 _03.串/01串_String.c create mode 100644 _03.串/_a.串.c diff --git a/_03.串/01串_String.c b/_03.串/01串_String.c new file mode 100644 index 0000000..db9b232 --- /dev/null +++ b/_03.串/01串_String.c @@ -0,0 +1,318 @@ +#include "string.h" +#include "stdio.h" +#include "stdlib.h" +#include "io.h" +#include "math.h" +#include "time.h" + +#define OK 1 +#define ERROR 0 +#define TRUE 1 +#define FALSE 0 + +#define MAXSIZE 40 /* ´æ´¢¿Õ¼ä³õʼ·ÖÅäÁ¿ */ + +typedef int Status; /* StatusÊǺ¯ÊýµÄÀàÐÍ,ÆäÖµÊǺ¯Êý½á¹û״̬´úÂ룬ÈçOKµÈ */ +typedef int ElemType; /* ElemTypeÀàÐ͸ù¾Ýʵ¼ÊÇé¿ö¶ø¶¨£¬ÕâÀï¼ÙÉèΪint */ + +typedef char String[MAXSIZE+1]; /* 0ºÅµ¥Ôª´æ·Å´®µÄ³¤¶È */ + +/* Éú³ÉÒ»¸öÆäÖµµÈÓÚcharsµÄ´®T */ +Status StrAssign(String T,char *chars) +{ + int i; + if(strlen(chars)>MAXSIZE) + return ERROR; + else + { + T[0]=strlen(chars); + for(i=1;i<=T[0];i++) + T[i]=*(chars+i-1); + return OK; + } +} + +/* ÓÉ´®S¸´ÖƵô®T */ +Status StrCopy(String T,String S) +{ + int i; + for(i=0;i<=S[0];i++) + T[i]=S[i]; + return OK; +} + +/* ÈôSΪ¿Õ´®,Ôò·µ»ØTRUE,·ñÔò·µ»ØFALSE */ +Status StrEmpty(String S) +{ + if(S[0]==0) + return TRUE; + else + return FALSE; +} + +/* ³õʼÌõ¼þ: ´®SºÍT´æÔÚ */ +/* ²Ù×÷½á¹û: ÈôS>T,Ôò·µ»ØÖµ>0;ÈôS=T,Ôò·µ»ØÖµ=0;ÈôSS[0]||len<0||len>S[0]-pos+1) + return ERROR; + for(i=1;i<=len;i++) + Sub[i]=S[pos+i-1]; + Sub[0]=len; + return OK; +} + +/* ·µ»Ø×Ó´®TÔÚÖ÷´®SÖеÚpos¸ö×Ö·ûÖ®ºóµÄλÖá£Èô²»´æÔÚ,Ôòº¯Êý·µ»ØÖµÎª0¡£ */ +/* ÆäÖÐ,T·Ç¿Õ,1¡Üpos¡ÜStrLength(S)¡£ */ +int Index(String S, String T, int pos) +{ + int i = pos; /* iÓÃÓÚÖ÷´®SÖе±Ç°Î»ÖÃϱêÖµ£¬Èôpos²»Îª1£¬Ôò´ÓposλÖÿªÊ¼Æ¥Åä */ + int j = 1; /* jÓÃÓÚ×Ó´®TÖе±Ç°Î»ÖÃϱêÖµ */ + while (i <= S[0] && j <= T[0]) /* ÈôiСÓÚSµÄ³¤¶È²¢ÇÒjСÓÚTµÄ³¤¶Èʱ£¬Ñ­»·¼ÌÐø */ + { + if (S[i] == T[j]) /* Á½×ÖĸÏàµÈÔò¼ÌÐø */ + { + ++i; + ++j; + } + else /* Ö¸ÕëºóÍËÖØÐ¿ªÊ¼Æ¥Åä */ + { + i = i-j+2; /* iÍ˻ص½ÉÏ´ÎÆ¥ÅäÊ×λµÄÏÂһλ */ + j = 1; /* jÍ˻ص½×Ó´®TµÄÊ×λ */ + } + } + if (j > T[0]) + return i-T[0]; + else + return 0; +} + + +/* TΪ·Ç¿Õ´®¡£ÈôÖ÷´®SÖеÚpos¸ö×Ö·ûÖ®ºó´æÔÚÓëTÏàµÈµÄ×Ó´®£¬ */ +/* Ôò·µ»ØµÚÒ»¸öÕâÑùµÄ×Ó´®ÔÚSÖеÄλÖ㬷ñÔò·µ»Ø0 */ +int Index2(String S, String T, int pos) +{ + int n,m,i; + String sub; + if (pos > 0) + { + n = StrLength(S); /* µÃµ½Ö÷´®SµÄ³¤¶È */ + m = StrLength(T); /* µÃµ½×Ó´®TµÄ³¤¶È */ + i = pos; + while (i <= n-m+1) + { + SubString (sub, S, i, m); /* È¡Ö÷´®ÖеÚi¸öλÖó¤¶ÈÓëTÏàµÈµÄ×Ó´®¸øsub */ + if (StrCompare(sub,T) != 0) /* Èç¹ûÁ½´®²»ÏàµÈ */ + ++i; + else /* Èç¹ûÁ½´®ÏàµÈ */ + return i; /* Ôò·µ»ØiÖµ */ + } + } + return 0; /* ÈôÎÞ×Ó´®ÓëTÏàµÈ£¬·µ»Ø0 */ +} + + +/* ³õʼÌõ¼þ: ´®SºÍT´æÔÚ,1¡Üpos¡ÜStrLength(S)+1 */ +/* ²Ù×÷½á¹û: ÔÚ´®SµÄµÚpos¸ö×Ö·û֮ǰ²åÈë´®T¡£ÍêÈ«²åÈë·µ»ØTRUE,²¿·Ö²åÈë·µ»ØFALSE */ +Status StrInsert(String S,int pos,String T) +{ + int i; + if(pos<1||pos>S[0]+1) + return ERROR; + if(S[0]+T[0]<=MAXSIZE) + { /* ÍêÈ«²åÈë */ + for(i=S[0];i>=pos;i--) + S[i+T[0]]=S[i]; + for(i=pos;iS[0]-len+1||len<0) + return ERROR; + for(i=pos+len;i<=S[0];i++) + S[i-len]=S[i]; + S[0]-=len; + return OK; +} + +/* ³õʼÌõ¼þ: ´®S,TºÍV´æÔÚ,TÊǷǿմ®£¨´Ëº¯ÊýÓë´®µÄ´æ´¢½á¹¹Î޹أ© */ +/* ²Ù×÷½á¹û: ÓÃVÌæ»»Ö÷´®SÖгöÏÖµÄËùÓÐÓëTÏàµÈµÄ²»ÖصþµÄ×Ó´® */ +Status Replace(String S,String T,String V) +{ + int i=1; /* ´Ó´®SµÄµÚÒ»¸ö×Ö·ûÆð²éÕÒ´®T */ + if(StrEmpty(T)) /* TÊǿմ® */ + return ERROR; + do + { + i=Index(S,T,i); /* ½á¹ûiΪ´ÓÉÏÒ»¸öiÖ®ºóÕÒµ½µÄ×Ó´®TµÄλÖà */ + if(i) /* ´®SÖдæÔÚ´®T */ + { + StrDelete(S,i,StrLength(T)); /* ɾ³ý¸Ã´®T */ + StrInsert(S,i,V); /* ÔÚÔ­´®TµÄλÖòåÈë´®V */ + i+=StrLength(V); /* ÔÚ²åÈëµÄ´®VºóÃæ¼ÌÐø²éÕÒ´®T */ + } + }while(i); + return OK; +} + +/* Êä³ö×Ö·û´®T */ +void StrPrint(String T) +{ + int i; + for(i=1;i<=T[0];i++) + printf("%c",T[i]); + printf("\n"); +} + + +int main() +{ + + int i,j; + Status k; + char s; + String t,s1,s2; + printf("ÇëÊäÈë´®s1: "); + + k=StrAssign(s1,"abcd"); + if(!k) + { + printf("´®³¤³¬¹ýMAXSIZE(=%d)\n",MAXSIZE); + exit(0); + } + printf("´®³¤Îª%d ´®¿Õ·ñ£¿%d(1:ÊÇ 0:·ñ)\n",StrLength(s1),StrEmpty(s1)); + StrCopy(s2,s1); + printf("¿½±´s1Éú³ÉµÄ´®Îª: "); + StrPrint(s2); + printf("ÇëÊäÈë´®s2: "); + + k=StrAssign(s2,"efghijk"); + if(!k) + { + printf("´®³¤³¬¹ýMAXSIZE(%d)\n",MAXSIZE); + exit(0); + } + i=StrCompare(s1,s2); + if(i<0) + s='<'; + else if(i==0) + s='='; + else + s='>'; + printf("´®s1%c´®s2\n",s); + k=Concat(t,s1,s2); + printf("´®s1Áª½Ó´®s2µÃµ½µÄ´®tΪ: "); + StrPrint(t); + if(k==FALSE) + printf("´®tÓнضÏ\n"); + ClearString(s1); + printf("ÇåΪ¿Õ´®ºó,´®s1Ϊ: "); + StrPrint(s1); + printf("´®³¤Îª%d ´®¿Õ·ñ£¿%d(1:ÊÇ 0:·ñ)\n",StrLength(s1),StrEmpty(s1)); + printf("Çó´®tµÄ×Ó´®,ÇëÊäÈë×Ó´®µÄÆðʼλÖÃ,×Ó´®³¤¶È: "); + + i=2; + j=3; + printf("%d,%d \n",i,j); + + k=SubString(s2,t,i,j); + if(k) + { + printf("×Ó´®s2Ϊ: "); + StrPrint(s2); + } + printf("´Ó´®tµÄµÚpos¸ö×Ö·ûÆð,ɾ³ýlen¸ö×Ö·û£¬ÇëÊäÈëpos,len: "); + + i=4; + j=2; + printf("%d,%d \n",i,j); + + + StrDelete(t,i,j); + printf("ɾ³ýºóµÄ´®tΪ: "); + StrPrint(t); + i=StrLength(s2)/2; + StrInsert(s2,i,t); + printf("ÔÚ´®s2µÄµÚ%d¸ö×Ö·û֮ǰ²åÈë´®tºó,´®s2Ϊ:\n",i); + StrPrint(s2); + i=Index(s2,t,1); + printf("s2µÄµÚ%d¸ö×ÖĸÆðºÍtµÚÒ»´ÎÆ¥Åä\n",i); + SubString(t,s2,1,1); + printf("´®tΪ£º"); + StrPrint(t); + Concat(s1,t,t); + printf("´®s1Ϊ£º"); + StrPrint(s1); + Replace(s2,t,s1); + printf("Óô®s1È¡´ú´®s2Öкʹ®tÏàͬµÄ²»ÖصþµÄ´®ºó,´®s2Ϊ: "); + StrPrint(s2); + + + return 0; +} + diff --git a/_03.串/_a.串.c b/_03.串/_a.串.c new file mode 100644 index 0000000..fd284e3 --- /dev/null +++ b/_03.串/_a.串.c @@ -0,0 +1,49 @@ +#include "string.h" +#include "stdio.h" +#include "stdlib.h" +#include "io.h" + +#define MAXSIZE 40 +#define OK 1 +#define ERROR 0 +#define TRUE 1 +#define FALSE 0 + +typedef int Status; +typedef int ElemType; + +typedef char String[MAXSIZE + 1]; + +Status StrAssign(String T, char *chars) +{ + // Éú³ÉÒ»¸öÆäÖµµÈÓÚcharsµÄ´®T + int i; + if (strlen(chars) > MAXSIZE) + { + return ERROR; + } + else + { + T[0] = strlen(chars); + for (i = 1; i <= T[0]; i++) + { + T[i] = *(chars + i - 1); + } + return OK; + } +} + +int main(){ + //char chars[]="ABCD"; + String T = "1233"; + //StrAssign(T,chars); + printf("%s \n",T); + printf("%c",T[3]); + + + + + + getchar(); + return OK; +} \ No newline at end of file diff --git a/a.out b/a.out index 9589c50109b6bc7693ea35163d6fe76abce91e8b..2931e1660a0b5e449e8b397fe1a736585365e5fb 100644 GIT binary patch delta 13691 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