数据结构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;
p>
printf(
请选择相关操作(数字
1~
5
控制
,
输入
0
结束)
n
printf(
建立串
---------------n
p>
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;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;i
for(i=0;i
printf(
printf(
}break;
case '4':{i=0;
p
rintf(
请输入要与原串比较的字符串
(#
结束
):n
scanf(
wh
ile(c!='#')
{
r->length++;
r->ch[i]=c;
i++;
scanf(
}
printf(
p>
第二个串中字符为
n
for(i=0;i<
r->length;i++)
printf(
printf(
for(i=0;i
{
if(l->ch[i]!=r->ch[i])
{if((
l->ch[i]-r->ch[i])<0){printf(
第二个串大
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(
p>
第二个串中字符为
n
for(i=0;i<
r->length;i++)
printf(
printf(
for(i=0,j=0;i
l->ch[l->length+i]=r->ch[j];
l->length=l->length+r->length;
p>
printf(
连接后第一个串中字符为
n
r->ch[i]=c;
i++;
for(i=0;i
printf(
printf(
}break;
case '6':{
i=0;
printf(
请输入要找
串的起始位置(第几个字符?)
n
scanf(
p>
printf(
请输入要找的字符个数
n<
/p>
printf(
scanf(
printf(
内容为:
n
printf(
for(i=0;i
{
printf(
h++;
}
}break;
}
getchar();
printf(
请选择相关操作(数字
1~6<
/p>
控制
,
输入
0<
/p>
结束)
n
printf(
建立串
---------------n
print
f(
显示串长度
-----------n
生成与原来相同的串
---n
printf(
串比较
-------------
--n
printf(
串连接
----
-----------n
printf(
返回值
---------------n
scanf(
g
etchar();
}
}
-