针对数据结构课程设计串的基本操作演示做的编程!!
intf("%d\n",E.length),flag1=0;break;
case 'f':printf("%d\n",F.length),flag1=0;break;
case 'F':printf("%d\n",F.length),flag1=0;break;
case 'g':printf("%d\n",G.length),flag1=0;break;
case 'G':printf("%d\n",G.length),flag1=0;break;
default :printf("输入格式错误,请重新输入.\n");
}
}
}
void substring(void)/*求子串*/
{
int flag1=1,i,j,k;
char hc,ch[100];
hstring *s1,*s2;
printf("请输入要求字串的串标示\n");
while(flag1)
{
fflush(stdin);
scanf("%c",&hc);
switch(hc)
{
case 'a':s1=&A;flag1=0;break;
case 'A':s1=&A,flag1=0;break;
case 'b':s1=&B,flag1=0;break;
case 'B':s1=&B,flag1=0;break;
case 'c':s1=&C,flag1=0;break;
case 'C':s1=&C,flag1=0;break;
case 'd':s1=&D,flag1=0;break;
case 'D':s1=&D,flag1=0;break;
case 'e':s1=&E,flag1=0;break;
case 'E':s1=&E,flag1=0;break;
case 'f':s1=&F,flag1=0;break;
case 'F':s1=&F,flag1=0;break;
case 'g':s1=&G,flag1=0;break;
case 'G':s1=&G,flag1=0;break;
default :printf("输入格式错误,请重新输入.\n");
}
}
flag1=1;
while(flag1)
{
printf("请输入求子串的起始位置\n");
fflush(stdin);
scanf("%d",&i);
if(i>0&&i<=s1->length)
flag1=0;
else
printf("输入超过范围,\n");
}
flag1=1;
while(flag1)
{
printf("请输入要求得字串的终止位置\n");
fflush(stdin);
scanf("%d",&j);
if(j>i&&j<s1->length)
flag1=0;
else
printf("输入超过范围,\n");
}
flag1=1;
printf("请输入要存放字串的串标示\n");
while(flag1)
{
fflush(stdin);
scanf("%c",&hc);
switch(hc)
{
case 'a':s2=&A;flag1=0;break;
case 'A':s2=&A,flag1=0;break;
case 'b':s2=&B,flag1=0;break;
case 'B':s2=&B,flag1=0;break;
case 'c':s2=&C,flag1=0;break;
case 'C':s2=&C,flag1=0;break;
case 'd':s2=&D,flag1=0;break;
case 'D':s2=&D,flag1=0;break;
case 'e':s2=&E,flag1=0;break;
case 'E':s2=&E,flag1=0;break;
case 'f':s2=&F,flag1=0;break;
case 'F':s2=&F,flag1=0;break;
case 'g':s2=&G,flag1=0;break;
case 'G':s2=&G,flag1=0;break;
default :printf("输入格式错误,请重新输入.\n");
}
}
for(k=0;i<=j;i++,k++)
ch[k]=s1->ch[i-1];
ch[k]='\0';
if(s2->ch)
free(s2->ch);
if(!k)
{
s2->length=0;
s2->ch=NULL;
}
else
{
if(!(s2->ch=(char *)malloc(k*sizeof(char)+1)))
exit(1);
for(j=0;j<k;j++)
s2->ch[j]=ch[j];
s2->ch[j]='\0';
s2->length=k;
}
}
void index(void)/*字串定位*/
{
int i,j,pos,flag1=1;
char hc;
hstring *t,*s;
printf("请输入主串的标识符\n");
while(flag1)
{
fflush(stdin);
scanf("%c",&hc);
switch(hc)
{
case 'a':t=&A;flag1=0;break;
case 'A':t=&A,flag1=0;break;
case 'b':t=&B,flag1=0;break;
case 'B':t=&B,flag1=0;break;
case 'c':t=&C,flag1=0
;break;
case 'C':t=&C,flag1=0;break;
case 'd':t=&D,flag1=0;break;
case 'D':t=&D,flag1=0;break;
case 'e':t=&E,flag1=0;break;