顺序结构的串
//顺序结构的串
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define MAXSIZE 100
struct string{
char elem[MAXSIZE];
int length;
};
int sub_string(struct string *s1,struct string *s2)
{
int t=0;
int i,j; //i表示s1下标,j表示s2下标
for(i=0;i<=s1->length-1;i++)
{
for(j=0;j<=s2->length-2;j++) //不匹配结束符
if(s1->elem[i+j]!=s2->elem[j])
break;
if(j==s2->length-1)
break;
}
if(j==s2->length-1)
t=1; //等于说明匹配成功
return t;
}
void cat_string(struct string *s1,struct string *s2)
{
int n1,n2,i;
n1=s1->length-1;
n2=s2->length;
if(n1+n2>MAXSIZE)
printf("\nerror");
else
for(i=0;i<=n2;i++)
s1->elem[n1+i]=s2->elem[i];
s1->length=n1+n2;
}
/*
int i,j;
i=s1->length-1;
for(j=0;j<=s2->length-1;j++)
s1->elem[i+j]=s2->elem[j];
s1->length=s1->length-2+s2->length;
*/
int cmp_string(struct string *s1,struct string *s2)
{
int i,j,t;
for(i=0,j=0;i<=s1->length-1 && j<=s2->length-1;i++,j++)
if(s1->elem[i]!=s2->elem[j]) //比较s1s2是否相等
break;
if(i==s1->length && j==s2->length) //比较长度
t=0;
else
if(s1->elem[i]<s2->elem[j]) //比较大小
t=-1;
else
t=1;
return t;
}
void del_string(struct string *s1,int i,int n) //从第i位开始删除n个字符
{
int j;
for(j=i+n-1;j<=s1->length-1;j++)
s1->elem[j-n]=s1->elem[j];
s1->length=s1->length-n;
}
main()
{
struct string *s1,*s2;
s1=(struct string *)malloc(sizeof(struct string));
s2=(struct string *)malloc(sizeof(struct string));
s1->length=0;
s2->length=0;
printf("\n输入s1:");
scanf("%s",s1->elem); //不需要加【】%s是字符串的格式
s1->length=strlen(s1->elem)+1; //改变length的长度
printf("\n输入s2:");
scanf("%s",s2->elem);
s2->length=strlen(s2->elem)+1;
printf("\n----------------subzc---------------------\n");
printf("\ns1=%s,s2=%s\n",s1->elem,s2->elem);
printf("sunstring=%d\n",sub_string(s1,s2));
printf("\n----------------strcmp--------------------\n");
printf("strcmp=%d\n",cmp_string(s1,s2));
printf("\n----------------strcat--------------------\n");
printf("\ns1=%s,s2=%s\n",s1->elem,s2->elem);
cat_string(s1,s2);
printf("strcar=%s\n",s1); //s1->elem也可以
printf("\n----------------strdsel---------------------\n");
del_string(s1,2,3);
printf("strdels1=%s\n",s1);
}
本文来自博客园,作者:JackieDYH,转载请注明原文链接:https://www.cnblogs.com/JackieDYH/p/17634993.html