您的当前位置:首页记录字符串中最长的相同字符串

记录字符串中最长的相同字符串

2022-04-23 来源:乌哈旅游
#include #include #define MaxSize 50 typedef char ElemType; typedef struct {

char data[MaxSize]; int length; }SqString;

void StrAssign(SqString &s,char cstr[]) {

int i; for(i=0;cstr[i]!='\\0';i++) { s.data[i]=cstr[i]; } s.length=i; }

void StrCopy(SqString &s,SqString t) {

int i; for(i=0;ibool StrEqual(SqString s,SqString t) {

bool same=true; int i; if(s.length!=t.length) same=false; else for(i=0;iint StrLength(SqString s) {

return s.length; }

SqString Concat(SqString s,SqString t) {

SqString str; int i; str.length=s.length+t.length; for(i=0;iSqString SubStr(SqString s,int i,int j) {

SqString str; int k; str.length=0; if(i<=0||i>s.length||j<0||i+j-1>s.length) return str; for(k=i-1;kSqString InsStr(SqString s1,int i,SqString s2) {

int j; SqString str; str.length=0; if(i<=0&&i>s1.length+1) return str; for(j=0;jSqString DelStr(SqString s,int i,int j) {

int k; SqString str; str.length=0;

if(i<=0||i>s.length||i+j>s.length+1) return str; for(k=0;kSqString RepStr(SqString s,int i,int j,SqString t) {

int k; SqString str; str.length=0; if(i<=0||i>s.length||i+j-1>s.length) return str; for(k=0;kvoid DispStr(SqString s) {

int i; if(s.length>0) { for(i=0;iint Strcmp(SqString s,SqString t) {

int i,comlen; if(s.lengtht.data[i])

return 1; else if(s.data[i]t.length) return 1; else return -1; }

SqString firstlongsame(SqString s) {

SqString str; int g=0,k=0,j; for(int i=0;ik) { k=g; j=i; } } } int y; y=j; for(j=y-k+1;j<=k;j++) str.data[j-y+k-1]=s.data[j]; str.length=k; return str; }

void main() {

SqString s,t; int i=0; cout<<\"请输入10个字符:\\n\"<//k记录最长相同字符的长度//j记录字符最后一个的位置 }

for(i=0;i<10;i++) cin>>s.data[i]; s.length=i;

t=firstlongsame(s); for(i=0;icout<cout<

因篇幅问题不能全部显示,请点此查看更多更全内容