急啊,,菜鸟不知道该怎么办了!!!

Riverwcj 2008-03-20 01:22:57
#include <iostream.h>
#include <stdlib.h>
#define MaxSize 100
typedef struct node
{ char ch[MaxSize];
char data;
struct node *next;
}LinkString;
void Assign(LinkString *&s,char t[])
{
int i=0;
LinkString *q,*tc;
s=(LinkString *)malloc(sizeof(LinkString));
s->next=NULL;
tc=s;
while (t[i]!='\0')
{
q=(LinkString *)malloc(sizeof(LinkString));
q->data=t[i];
tc->next=q;tc=q;
i++;
}
tc->next=NULL;
}//串赋值
void StrCopy(LinkString *&s,LinkString *t)
{
LinkString *p=t->next,*q,*tc;
s=(LinkString *)malloc(sizeof(LinkString));
s->next=NULL;
tc=s;
while(p!=NULL)
{
q=(LinkString *)malloc(sizeof(LinkString));
q->data=p->data;
tc->next=q;tc=q;
p=p->next;
}
tc->next=NULL;
}//串复制
int StrLength(LinkString *s)
{
int i=0;
LinkString *p=s->next;
while (p!=NULL)
{
p=p->next;i++;
}
return i;
}//求串长
int StrEqul(LinkString *s,LinkString *t)
{
LinkString *p=s->next,*q=t->next;
while(p!=NULL&&q!=NULL)
{ if(p->data!=q->data)
return 0;
p=p->next;
q=q->next;
}
if(p!=NULL||q!=NULL)
return 0;
return 1;
}//判断
LinkString *Concat(LinkString *s,LinkString *t)
{
LinkString *p=s->next,*q,*r,*tc;
r=(LinkString *)malloc(sizeof(LinkString));
r->next=NULL;
tc=r;
while(p!=NULL)
{
q=(LinkString *)malloc(sizeof(LinkString));
q->data=p->data;
tc->next=q;tc=q;
p=p->next;
}
p=t->next;
while(p!=NULL)
{
q=(LinkString *)malloc(sizeof(LinkString));
q->data=p->data;
tc->next=q;tc=q;
p=p->next;
}
tc->next=NULL;
return r;
}//串连接
LinkString *SubStr(LinkString *s,int i,int j)
{
int k=1;
LinkString *p=s->next,*tc,*r,*q;
r=(LinkString *)malloc(sizeof(LinkString));
r->next=NULL;
tc=r;
while(k<i&&p!=NULL)
{
p=p->next;k++;
}
if(p!=NULL)
{
k=1;
while(k<=j&&p!=NULL)
{
q=(LinkString *)malloc(sizeof(LinkString));
q->data=p->data;
tc->next=q;tc=q;
p=p->next;
k++;
}
tc->next=NULL;
}
return r;
}//求子串
int Index(LinkString *s,LinkString *t)
{
int i=0;
LinkString *p=s->next,*q,*p1,*q1;
while(p!=NULL)
{
q=t->next;
if(p->data==q->data)
{
p1=p->next;
q1=q->next;
while(p1!=NULL&&q1!=NULL&&p1->data==q1->data)
{
p1=p1->next;
q1=q1->next;
}
if(q1==NULL)
return i;
}
p=p->next;i++;
}
return -1;
}//查找子串位置
int InsStr(LinkString *&s,int i,LinkString *t)
{
LinkString *q=s->next,*p,*r;
int k;
StrCopy(r,t);
q=r;r=r->next;free(p);
for(k=1;k<i;k++)
{
if(q==NULL)
return 0;
p=q;
q=q->next;
}
p->next=r;
while(r->next!=NULL)
r=r->next;
r->next=q;
return 1;
}//子串插入
int DelStr(LinkString *&s,int i,int j)
{
int k;
LinkString *q=s->next,*p,*t;
for(k=1;k<i;k++)
{
if(q==NULL)
return 0;
p=q;
q=q->next;
}
for(k=1;k<=j;k++)
{
if(q==NULL)
return 0;
t=q;
q=q->next;
free(t);
}
p->next=q;
return 1;
}//子串删除
LinkString *RepStrAll(LinkString *s,LinkString *s1,LinkString *s2)
{
int i;
i=Index(s,s1);
while(i>0)
{
DelStr(s,i,StrLength(s1));
InsStr(s,i,s2);
i=Index(s,s1);
}
return s;
}//子串替换
void DispStr(LinkString *s)
{
LinkString *p=s->next;
while(p!=NULL)
{
cout<<p->data;
p=p->next;
}
cout<<endl;
}
void main()
{ char a,b,c,d,m,n,p,q,f,g,h;
int i;
a="jfdaksfjsaof";
b="sfjsaof";
g="fwegreg";
h="fdsgijs";
cout<<"第一个串为:"<<endl;
DispStr(a);
cout<<"串长为:"<<StrLength(a)<<endl;
cout<<"第二个串为:"<<endl;
DispStr(b);
cout<<"串长为:"<<StrLength(b)<<endl;
cout<<"串复制运算:"<<endl;
StrCopy(m,a);
StrCopy(n,b);
DispStr(m);
DispStr(n);
cout<<"判断两个串是否相等"<<endl;
c=Assign(m,a);
d=Assign(n,b);
DispStr(c);
DispStr(d);
cout<<"这两个串不相等"<<endl;
p="kijui";
cout<<"将串p连接到a"<<endl;
q=Concat(a,p);
DispStr(q);
cout<<"将串p连接到b"<<endl;
q=Concat(b,p);
DispStr(q);
cout<<"求串a中第3个位置的3个字符组成的串f"<<endl;
f=SubStr(a,3,3);
DispStr(f);
cout<<"查找串b在串a中的位置"<<endl;
i=Index(a,b);
cout<<i<<endl;
cout<<"将子串g插入到a中第3个位置"<<endl;
InsStr(a,3,g);
DispStr(a);
cout<<"删除串a中第3个位置开始的3个字符"<<endl;
DelStr(a,3,3);
DispStr(a);
cout<<"子串h替换子串b"<<endl;
i=Index(a,b);
DelStr(a,i,StrLength(b));
InsStr(a,i,h);
DispStr(a);
}
主函数我都写好了,,但我不知道错在哪,,大哥,大姐们能帮我一下啊,,
...全文
75 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjkwf 2008-11-04
  • 打赏
  • 举报
回复
数据结构方面的问题
lijinfenghust 2008-11-04
  • 打赏
  • 举报
回复
你把错误贴出来看看。编译错,还是运行错?
xqls_xqls 2008-11-04
  • 打赏
  • 举报
回复
还是看一下C++ primer plus 第五版
对你会很有帮助的
试试
Riverwcj 2008-11-04
  • 打赏
  • 举报
回复
哪位大哥帮帮忙啊
HelloDan 2008-03-20
  • 打赏
  • 举报
回复
大概点了一下,凡是这样的帖子看到都怕,最重要问题是乱,而且没有用代码格式贴。
hastings 2008-03-20
  • 打赏
  • 举报
回复
大概瞄了一下,是数据结构方面的问题,
你那书再好好研究研究.
idot 2008-03-20
  • 打赏
  • 举报
回复
大概编译了一下,你需要一本C基础的教程
《C程序设计语言》还行。
  • 打赏
  • 举报
回复
大概看了一下,你需要一本C++基础的书籍
C++Primer不错

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧