数据结构C语言字符串的基本操作
串的基本操作
#include
#include
#include
#define m 100
typedef struct{
char ch[m];
int length;
}Hstr;
void main()
{
Hstr *l,*p,*r;
char c,w;
int h,j,k;
int i=0;
l=(Hstr *)malloc(sizeof(Hstr));
p=(Hstr *)malloc(sizeof(Hstr));
r=(Hstr *)malloc(sizeof(Hstr));
l->length=0;
p->length=0;
r->length=0;
printf("请选择相关操作(数字1~5控制,输入0结束)\n");
printf("--------------1.建立串---------------\n");
printf("--------------2.显示串长度-----------\n");
printf("--------------3.生成与原来相同的串---\n");
printf("--------------4.串比较---------------\n");
printf("--------------5.串连接---------------\n");
printf("--------------6.返回值---------------\n");
scanf("%c",&w);
getchar();
while(w)
{
switch(w)
{
case '1':{printf("请输入字符(#结束):\n");
scanf("%c",&c);
while(c!='#')
{ l->length++;
l->ch[i]=c;
i++;
scanf("%c",&c);
}
printf("串中字符为\n");
for(i=0;ilength;i++)
printf("%c",l->ch[i]);
printf("\n");
}break;
case '2':{
printf("串长度为%d\n",l->length);}break;
case '3':{
for(i=0;ilength;i++)
{
p->ch[i]=l->ch[i];
}
p->length=l->length;
printf("复制的串中字符为\n");
for(i=0;ilength;i++)
printf("%c",p->ch[i]);
printf("\n");
}break;
case '4':{i=0;
printf("请输入要与原串比较的字符串(#结束):\n");
scanf("%c",&c);
while(c!='#')
{ r->length++;
r->ch[i]=c;
i++;
scanf("%c",&c);
}
printf("第二个串中字符为\n");
for(i=0;ilength;i++)
printf("%c",r->ch[i]);
printf("\n");
for(i=0;ilength&&ilength;i++)
{
if(l->ch[i]!=r->ch[i])
{if((l->ch[i]-r->ch[i])<0){printf("第二个串大"); printf("\n");}
if((l->ch[i]-r->ch[i])>0){printf("第一个串大"); printf("\n");}
break;}
}
if(i==r->length||i==l->length)printf("两个串一样大\n");
}break;
case'5':{i=0;
printf("请输入要与原串连接的串(#结束)\n");
scanf("%c",&c);
while(c!='#')
{r->length++;
r->ch[i]=c;
i++;
scanf("%c",&c);
}
printf("第二个串中字符为\n");
for(i=0;ilength;i++)
printf("%c",r->ch[i]);
printf("\n");
for