急啊,,菜鸟不知道该怎么办了!!!
#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);
}
主函数我都写好了,,但我不知道错在哪,,大哥,大姐们能帮我一下啊,,
#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);
}
主函数我都写好了,,但我不知道错在哪,,大哥,大姐们能帮我一下啊,,
...全文
相关推荐
菜鸟商城(完整源码)
菜鸟商城完整版源码,没有视频,我等级最大上传70M,太大没法上传,你看到的所谓完整版先看看他等级对应上传限制就知道是不是完整版了哈哈 所以发个文档,内置下载链接。上一个链接失效找不到删的地方,不要再下载了。同时下载的朋友评价一下。
TrintyCore菜鸟工具
用于T端简单修改配置文件使用。
白话C++ 不看不知道,看了下一跳,这书真奇妙
不看不知道,看了下一跳,这书真奇妙 第一章 程序漫谈 对于计算机,也许你是老鸟,也许你是菜鸟…… 第二章 编程环境 我们什么编程基础都还没有掌握,能驾驭好这个巨人吗? 第三章 计算机原理 给你一个苹果你的处理是吃掉,而女友把她的手给你时她的意思是要你牵着,如果你把后者等同于前者……
C++小游戏-五子棋(菜鸟版).cpp
虽然是菜鸟版,电脑水平也并不是很臭,仍然可以与你对决20回合,滋生无数乐趣。如果你棋艺高超,请移步“五子棋(人机对战增强版)”,下载后用C++方可打开。玩的时候一定记住,全屏!全屏!!全屏!!!
Python3菜鸟教程离线版20200914(含完整菜鸟教程网页及CHM版文档)
菜鸟教程网站上的Python3教程还挺详细,想在没有网络的电脑上离线看但是发现网上没有资源,只有老版本的PDF文档,实在不方便阅读,所以自己做了一个,Python3菜鸟教程离线版内部包含20200914保存的完整离线版教程网页以及用网页做的CHM帮助文档(文档内BUG较多,懒得弄了) 注意:CHM文档能看,但是会一直报错,离线网页版没有问题,想要完美CHM文档的千万千万别下载!!!


