字符串替换c++
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生姓名:
实验日期:
实验任务:采用顺序存储或链式存储,实现字符串的替换功能(例如,将所有串中所有的ab替换成1234,或f等);
实验原理:串的顺序存储和链式存储,字符串的替换,求串的长度,输出串。
实验源程序:
#include
#include
typedef struct snode
{
char data;
struct snode *next;
}LiString;
void StrAssign(LiString * &s,char t[])
{
int i;
LiString *r,*p;
s=(LiString *)malloc(sizeof(LiString));
s->next=NULL;
r=s;
for(i=0;t[i]!='\0';i++)
{
p=(LiString *)malloc(sizeof(LiString));
p->data=t[i];
p->next=NULL;
r->next=p;r=p;
}
}
int StrLength(LiString *s)
{
int i=0;
LiString *p=s->next;
while(p!=NULL)
{
i++;
p=p->next;
}
return i;
}
void Repl(LiString * &s)
{
LiString *p=s->next,*q;
int find=0;
while (p->next!=NULL && find==0)
{
if(p->data=='a' && p->next->data=='b')
{
p->data='x';p->next->data='z';
q=(LiString *)malloc(sizeof(LiString));
q->data='y';q->next=p->next;p->next=q;
find=1;
}
else p=p->next;
}
}
void DispStr(LiString *s)
{
LiString *p=s->next;
while(p!=NULL)
{
printf("%c",p->data);
p=p->next;
}
printf("\n");
}
void main()
{
LiString *s,*s1;
printf("(1)建立串s和s1\n");
StrAssign(s,"abcdefgh");
StrAssign(s1,"xyz");
printf("(2)输出串s:\n");
DispStr(s);
printf("(3)串s的长度为:%d\n",StrLength(s));
printf("(4)输出串为s2:\n");
Repl(s);
DispStr(s);
}
实验结果截图:
实验任务:采用三元组存储稀疏矩阵,实现矩阵的转置功能;
实验原理:稀疏矩阵的三元组表示,求三元组表示的转置矩阵,输出三元组表示。实验源程序:
#include
typedef int Elem;
#define Maxsize 100
#define M 5
#define N 5
typedef struct
{
int r;
int c;
Elem d;
}Tupnode;
typedef struct
{
int rows;
int cols;
int nums;
Tupnode data[Maxsize];
}Tsmatrix;
void Creatmat(Tsmatrix &t,Elem t1[M][N])
{ int i,j;
t.rows=M;
t.cols=N;
t.nums=0;
for(i=0;i { for(j=0;j if(t1[i][j]!=0) { t.data[t.nums].r=i; t.data[t.nums].c=j; t.data[t.nums].d=t1[i][j]; t.nums++; } } } void Dismat(Tsmatrix t) { int i; if(t.nums<=0) return ; printf("\t%d\t%d\t%d\n",t.rows,t.cols,t.nums); printf(" \n"); for(i=0;i printf("\t%d\t%d\t%d\n",t.data[i].r,t.data[i].c,t.data[i].d); } void Trantat(Tsmatrix t,Tsmatrix &ta) { int p=0,q=0,w; ta.rows=t.cols; ta.cols=t.rows; ta.nums=t.nums; if(t.nums!=0) { for(w=0;w for(p=0;p if(t.data[p].c==w) { ta.data[q].r=t.data[p].c;