问答题 试写出连接两个顺序串以及判断两个顺序串是否相等的算法。
【正确答案】正确答案:(1)连接两个顺序串的算法。 已知顺序串St1和St2,把St2连接到St1的末尾,得到一个新的顺序串St3。算法名为Concat_St(),参数为St1、St2。 Concat st(St1,St2) { char St3[maxsize]; /*创建一个新的顺序串为空*/ St3_1en=0, if(St1_1en+St2_1en>maxsize+1) /*新串放不下两个串*/ { printf(''两串长度之和超长!''); return(NULL); } else { for(i=n i<=St1_1en;i++) /*把串St1传送给串St3*/ St3[i]=St1 [i]; for(j=1; j<=St2_1en;j++) /*接着把St2传送给串St3*/ St3[j+St1_1en]=St2[j]; St3_Len=St1_1en+St2_1en; /*修改串St3的长度*/ St3[St3_1en+1]=''\0''; /*为St3安放串结束符*/ return(St3); /*返回St3*/ } } (2)判断两个顺序串是否相等的算法。 已知顺序串St1和St2,如果相等则返回1,否则返回0。算法名为Equal_St(),参数为St1、St2。 Equa1_St(St1,St2) { if(St1_1en!=St2_1en) /*两个串长度不相等*/ return(0); else /*两个串长度相等*/ { for(i=1;i<=St1_1en;i++) if(St1[i]!=St2[i]) /*有字符不同*/ return(0), return(1); } } (2)判断两个顺序串是否相等的算法。 已知顺序串St1和St2,如果相等则返回1,否则返回0。算法名为Equal_St(),参数为St1、St2。
【答案解析】