順序表實現:
#include#include#include#define maxn 111
typedef struct
seqstr;
void strinsert(seqstr *s,int i,seqstr t) //功能:在第i個字元後插入一段字串
for(k=s->len-1;k>=i-1;k--)
s->str[k+t.len]=s->str[k];
for(k=0;kstr[i-1+k]=t.str[k];
s->len+=t.len;
s->str[s->len]='\0';
}void strndele(seqstr *s,int i,int len) //刪除從第i個字元開始長度為len的子串
for(k=s->len-1;k>=i+len-1;k--)
s->str[k-len]=s->str[k];
s->len-=len;
s->str[s->len]='\0';
}seqstr* strconcat(seqstr s,seqstr t) //將兩串合併
seqstr *d=(seqstr *)malloc(sizeof(seqstr));
int slen=strlen(s.str);
int tlen=strlen(t.str);
for(i=0;istr[cnt++]=s.str[i];
for(i=0;istr[cnt++]=t.str[i];
d->len=cnt;
d->str[d->len]='\0';
return d;
}seqstr* substring(seqstr s,int i,int len) //返回第i個字元開始長度為len的子串
seqstr *t=(seqstr *)malloc(sizeof(seqstr));
for(k=i-1;kstr[cnt++]=s.str[k];
t->len=cnt;
t->str[t->len]='\0';
return t;
}int main()
鍊錶實現:
#include#includetypedef struct linkstrnode
node;
typedef node* linkstring;
void create(linkstring *s) //二級指標,沒有返回值
if(p!=null) p->next=null; //排除沒有輸入字元的情況
}void display(node *head) //列印字串鍊錶
while(p)
printf("\n");
}void strinsert(linkstring *s,node *t,int i) //從字串第i個位置插入}}
}void strdele(linkstring *s,int i,int len)//刪除第i個字元開始長度為len的字串
tail->next=null;
while(!tail) p=tail,tail=tail->next,free(p);
}}void strconcat(linkstring *s,linkstring t)//字串拼接
while(p->next) p=p->next;
p->next=t;
}node *substring(node *s,int i,int len) //字串s中擷取i個字元開始,長度為len的字串
t=(node *)malloc(sizeof(node));
t->data=p->data;
t->next=null;
p=p->next;
tail=t;
k=1;
while(p&&kdata=p->data;
tail->next=q;
tail=tail->next;
p=p->next;
k++;
}tail->next=null;
if(knext,free(tail);
return null;
}else return t;
}int main()
字串基本操作
include unsigned int strlenth char s 獲取字串長度 return lenth void strcopy char target,char source 字串拷貝 int strcompare char s,char t 字串比較,s t,則返回1 s t,則返回0...
字串基本操作
遞迴求字串長度 int recurlength char str 字串中最後乙個引數的長度 int lastwordlen char str,int len int lastwordlen char str return lastlen 字串記憶體的拷貝 實現memmove函式 char my me...
字串基本操作
判斷字串開頭結尾字元 string.startswith l 判斷字串是否以l開頭 string.endswith n 判斷字串是否以n結尾 返回字串中字元的位置 string.find x 找到這個字元返回下標,多個時返回第乙個 不存在的字元返回 1 string.index x 找到這個字元返回...