数据结构C语言串的基本操作

温柔似野鬼°
581次浏览
2021年02月11日 03:59
最佳经验
本文由作者推荐

-

2021年2月11日发(作者:铁齿银牙)


串的基本操作



#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(


建立串


---------------n





















pri ntf(


显示串长度


-----------n


printf(


生成与原来相同的串


---n


printf(


串比较


----------- ----n


printf(


串连接


-- -------------n


printf(


返回值


---------------n


scanf(


getchar();


while(w)


{





switch(w)


{


case '1':{printf(


请输入字符


(#

结束


):n


scanf(


whil e(c!='#')


{




l->length++;






l->ch[i]=c;


i++;



scanf(




}


printf(


串中字符为


n



for(i=0;ilength;i++)




printf(



printf(


}break;



























case '2':{




printf(


串长度为


%dn


case '3':{








{




p->ch[i]=l->ch[i];



}



p->length=l->length;



printf(


复制的串中字符为


n



















for(i=0;ilength;i++)


for(i=0;ilength;i++)




printf(




printf(





























}break;


case '4':{i=0;



p rintf(


请输入要与原串比较的字符串


(#


结束


):n


scanf(


wh ile(c!='#')


{




r->length++;



r->ch[i]=c;





i++;



scanf(


}


printf(


第二个串中字符为


n


for(i=0;i< r->length;i++)



printf(



printf(







for(i=0;ilength&&ilength;i++)















{






if(l->ch[i]!=r->ch[i])


{if(( l->ch[i]-r->ch[i])<0){printf(


第二个串大

< p>


if((l->ch[i]-r->ch[i])>0){printf(


第一个串大



break;}





} < /p>


if(i==r->length||i==l->length)printf(


两个串一样大


n









































}break;


case'5':{i=0;



pr intf(


请输入要与原串连接的串(


#


结束)


n


















scanf(


while(c!='#')


{r->length++;






scanf(


}


printf(


第二个串中字符为


n


for(i=0;i< r->length;i++)



printf(



printf(












for(i=0,j=0;ilength;i++,j++)


l->ch[l->length+i]=r->ch[j];




l->length=l->length+r->length;






printf(


连接后第一个串中字符为


n


r->ch[i]=c;


i++;


for(i=0;ilength;i++)



printf(












printf(















}break;


case '6':{





i=0;


printf(


请输入要找 串的起始位置(第几个字符?)


n




scanf(
























printf(


请输入要找的字符个数


n< /p>































printf(


































scanf(



printf(


内容为:


n



for(i=0;i



{




printf(




h++;



}







}break;

















}



getchar();




printf(


请选择相关操作(数字


1~6< /p>


控制


,


输入


0< /p>


结束)


n


printf(


建立串


---------------n


print f(


显示串长度


-----------n

printf(


生成与原来相同的串


---n


printf(


串比较


------------- --n


printf(


串连接


---- -----------n


printf(


返回值


---------------n


scanf(


g etchar();










}






}







-


-


-


-


-


-


-


-