日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 星期顺序_第8周 【项目3-顺序串算法】

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 星期顺序_第8周 【项目3-顺序串算法】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*

*Copyright??(c)2017,煙臺大學計算機與控制工程學院

*All?rights?reservrd.

*作者:李欣豪

*完成時間:2017年12月14日

*版本號:v1.0

*問題描述:采用順序存儲方式存儲串,實現下列算法并測試:

(1)試編寫算法實現將字符串S中所有值為c1的字符換成值為c2的字符:

void Trans(SqString *&s, char c1, char c2);

(2)試編寫算法,實現將已知字符串所有字符倒過來重新排列。如ABCDEF改為FEDCBA。

void Invert(SqString &s)

一、以順序串算法庫為基礎,建立頭文件sqString.h

#ifndef SqString_H_INCLUDED

#define SqString_H_INCLUDED

#define MaxSize 100 //最多的字符個數

typedef struct

{ char data[MaxSize]; //定義可容納MaxSize個字符的空間

int length; //標記當前實際串長

} SqString;

void StrAssign(SqString &s,char cstr[]); //字符串常量cstr賦給串s

void StrCopy(SqString &s,SqString t); //串t復制給串s

bool StrEqual(SqString s,SqString t); //判串相等

int StrLength(SqString s); //求串長

SqString Concat(SqString s,SqString t); //串連接

SqString SubStr(SqString s,int i,int j); //求子串

SqString InsStr(SqString s1,int i,SqString s2); //串插入

SqString DelStr(SqString s,int i,int j) ; //串刪去

SqString RepStr(SqString s,int i,int j,SqString t); //串替換

void DispStr(SqString s); //輸出串

#endif // SqString_H_INCLUDED

建立源文件sqString.cpp

#include

#include

#include "SqString.h"

void StrAssign(SqString &s,char cstr[]) //s為引用型參數

{ int i;

for (i=0;cstr[i]!='\0';i++)

s.data[i]=cstr[i];

s.length=i;

}

void StrCopy(SqString &s,SqString t) //s為引用型參數

{ int i;

for (i=0;i

s.data[i]=t.data[i];

s.length=t.length;

}

bool StrEqual(SqString s,SqString t)

{ bool same=true;

int i;

if (s.length!=t.length) //長度不相等時返回0

same=false;

else

for (i=0;i

if (s.data[i]!=t.data[i]) //有一個對應字符不相同時返回0

{ same=false;

break;

}

return same;

}

int StrLength(SqString s)

{

return s.length;

}

SqString Concat(SqString s,SqString t)

{ SqString str;

int i;

str.length=s.length+t.length;

for (i=0;i

str.data[i]=s.data[i];

for (i=0;i

str.data[s.length+i]=t.data[i];

return str;

}

SqString SubStr(SqString s,int i,int j)

{ SqString str;

int k;

str.length=0;

if (i<=0 || i>s.length || j<0 || i+j-1>s.length)

return str; //參數不正確時返回空串

for (k=i-1;k

str.data[k-i+1]=s.data[k];

str.length=j;

return str;

}

SqString InsStr(SqString s1,int i,SqString s2)

{ int j;

SqString str;

str.length=0;

if (i<=0 || i>s1.length+1) //參數不正確時返回空串

return str;

for (j=0;j

str.data[j]=s1.data[j];

for (j=0;j

str.data[i+j-1]=s2.data[j];

for (j=i-1;j

str.data[s2.length+j]=s1.data[j];

str.length=s1.length+s2.length;

return str;

}

SqString DelStr(SqString s,int i,int j)

{ int k;

SqString str;

str.length=0;

if (i<=0 || i>s.length || i+j>s.length+1) //參數不正確時返回空串

return str;

for (k=0;k

str.data[k]=s.data[k];

for (k=i+j-1;k

str.data[k-j]=s.data[k];

str.length=s.length-j;

return str;

}

SqString RepStr(SqString s,int i,int j,SqString t)

{ int k;

SqString str;

str.length=0;

if (i<=0 || i>s.length || i+j-1>s.length) //參數不正確時返回空串

return str;

for (k=0;k

str.data[k]=s.data[k];

for (k=0;k

str.data[i+k-1]=t.data[k];

for (k=i+j-1;k

str.data[t.length+k-j]=s.data[k];

str.length=s.length-j+t.length;

return str;

}

void DispStr(SqString s)

{ int i;

if (s.length>0)

{ for (i=0;i

printf("%c",s.data[i]);

printf("\n");

}

}

二、對問題(1)的解決:

在頭文件中添加一個函數聲明:void Trans(SqString &s, char c1, char c2);

并在源文件中定義這個函數:

void Trans(SqString &s, char c1, char c2)

{

int i;

for (i=0; i

if (s.data[i]==c1)

s.data[i]=c2;

}

編輯main.cpp文件,實現功能:

#include

#include "sqString.h"

int main()

{

SqString s;

StrAssign(s, "messages");

Trans(s, 'e', 'a');

DispStr(s);

return 0;

}

三、對問題(2)的解決:

在頭文件中加入加入新的函數聲明:void Invert(SqString &s);

在源文件中定義這個函數:

void Invert(SqString &s)

{

int i;

char temp;

for (i=0; i

{

temp = s.data[i];

s.data[i]=s.data[s.length-i-1];

s.data[s.length-i-1] = temp;

}

}

編輯main函數:

int main()

{

SqString s;

StrAssign(s, "abcdefg");

Invert(s);

DispStr(s);

return 0;

}

總結

以上是生活随笔為你收集整理的java 星期顺序_第8周 【项目3-顺序串算法】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。