链串实现功能(初始化、判断空串、串的赋值、串的连接、获取子串)
#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
char ch;
struct Node *next;
}linkstr;
//初始化
int Initlinkstr(linkstr *sl){
sl = (linkstr *)malloc(sizeof(linkstr));
if(sl != NULL){
sl->next = NULL;
sl->ch = '\0';
return 1;
}
return 0;
}
//判断空串
int iEmpty(linkstr *sl){
if(sl ==NULL) return 1;
else return 0;
}
// 串的赋值
int Stringassign(linkstr *s,char ch[]){
linkstr *sl;
sl = s;
if(sl == NULL) return 0;
for(int i = 0;ch[i] != '\0';i++){
sl->next = (linkstr *)malloc(sizeof(linkstr));
sl->ch = ch[i];
sl = sl->next;
}
sl->next = NULL;
sl->ch = '\0';
return 1;
}
//求串的长度
int strlength(linkstr *s){
int i;
linkstr *sl;
sl = s;
while(sl->next != NULL){
i++;
sl = sl->next;
}
return i;
}
//串的连接操作
int contact(linkstr *s1,linkstr *s2,linkstr *s3){
linkstr *sl1,*sl2,*sl3;
sl1 = s1;
sl2 = s2;
sl3 = s3;
if(sl1 == NULL || sl2 == NULL || sl3 == NULL) return 0;
while(sl1->next != NULL){
sl1 = sl1->next;
}
sl1->next = sl2->next;
while(sl2->next != NULL){
sl2 = sl2->next;
}
sl2->next = sl3->next;
return 1;
}
// 截取子串
int getsstring(linkstr *s,char ch[]){
linkstr *sl;
}