字串的基本操作

2021-07-06 02:23:59 字數 2153 閱讀 3051

順序表實現:

#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 找到這個字元返回...