字符串替换c++

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档