串 資料結構實驗報告

2022-08-21 07:45:02 字數 2767 閱讀 8164

課程名稱資料結構實驗成績

實驗專案串指導教師

學生姓名學號班級專業10電子本

實驗地點綜合樓實驗日期 2023年11月10日 _

一、實習目的

1. 熟悉串型別的實現方法,了解簡單文書處理的設計方法。

2. 熟悉c語言的字元和把字串處理的原理和方法。下面簡單介紹c相關知識:

(1) 字元:

char ch; ch是單個字元變數

ch=』aa』 是字元常量

(2)字串:

char s1[10],*s2,s3[2][10];

s1 是一維字元陣列,也稱它是字串變數;

s2 是指向字元的指標變數,可以給它分配一批單元存放字元,也稱為串;

s2=(char )malloc(sizeof(char)*10);

s3 是2行10列的二維字元陣列,一般看做含有2個字串的陣列s3[0],s3[1],每個串最多容10個字元;

下列賦值語句是錯誤的:

s1= 「abcdefghi」 ;

應該使用串拷貝函式:

strcpy(s1, 「abcdefghi」); strcoy( s2, 」abcdefghi」);

strcpy(s3[0], 」123456789」); strcpy(s3[1], 」jklmnopqr」) ;

用雙引號括起來的是字串常量,在處理字串常量時,注意總是有乙個字元『\0』作為字串常量的結尾 。」123456789」存入s3[0]要占用10個位置,而不是9個。s3[0][0]裡是1,……,s3[0][8]裡是9,s3[0][9]裡是『\0』(串尾標誌)。

(3)常見的字元函式:

int strlen(streing)

string 可以是串變數或常量, 函式結果是串長度(不含『\0』)。

strcpy( str ,str2 );

str是串變數,str2可以是串變數或常量。函式的作用是將str2的串拷貝給串變數str。 int strcmp( str1 ,str2 );

str1,str2可以是串變數或常量,函式的作用是將兩個串進行比較,

當 str1==str2,函式結果=0;

當 str1>str2, 函式結果》0;

當 str1 char *strcat( str1,str2);

str1,str2可以是串變數或常量,函式的作用是將兩個串進行連線,函式結果是連線後的新串。

二、例題中修改後的原程式**

#include <>

#include <>

#include<>

/* 函式宣告 */

int index(char *s, char *t,int pos);

void replace(char *s,char *t,char *v);

/* 主函式 */

void main()

/* main */

/* 串的置換,將主串s中的t串,置換為v串 */

void replace(char *s,char *t,char *v)

i=k-1;

for(j=0;j<=vl-1;j++)

}else

i=k-1;

for(j=0;j }

po=k+vl;

pol=sl-tl+1;

printf(" pos=%2d",po);

sl=strlen(s);s[sl]='\0'; //字串以'\0'結束,解決替換後無結尾

}} /* replace */

/* 串匹配函式 */

/* 從主串s的第pos個字元開始查詢子串t,函式結果是子串t在主串s的pos開始之後首次出現的位置 */

int index(char *s, char *t, int pos)

else

if(j>tl) return(i-tl);

else return(-1);

} /* index */

程式執行截圖如下

三、.實習題

1. 將上述例項打入計算機,除錯執行。

字串常量的提供有多種手段。可以在定義串型別同時初始化串值:

char t="abc",*v="%%%";

還可以使用語句gets(s)進行輸入;也可以用scanf("%s",s)進行輸入。請你試著用不同的方法修改、除錯、執行程式。

【源程式】:

#include <>

#include <>

#include<>

int index(char *s, char *t,int pos);

void replace(char *s,char *t,char *v);

void main() //主函式

end_main

/* 串的置換,將主串s中的t串,置換為v串 */

void replace(char *s,char *t,char *v)

po=k+tl;

printf(" pos=%2d",po);

}} /* replace */

/* 串匹配函式 */

/* 從主串s的第pos個字元開始查詢子串t,函式結果是子串t在主串s的pos開始之後首次出現的位置 */

int index(char *s, char *t, int pos)

{int i,j,sl,tl;

i=pos; j=1; sl=strlen(s); tl=strlen(t);

while(i<=sl && j<=tl)

資料結構實驗報告

實驗報告 實驗課程 資料結構 實驗專案實驗 專業 電腦科學與技術 姓名於凡 學號 10703070328 指導教師汪林林 實驗時間 2008 12 7 重慶工學院計算機學院 實驗一線性表 1.實驗要求 掌握資料結構中線性表的基本概念。熟練掌握線性表的基本操作 建立 插入 刪除 查詢 輸出 求長度及合...

資料結構實驗報告

實驗一線性表的基本操作 1 實驗目的2 2 實驗環境2 3 實驗內容,主要 除錯與執行 2 4 總結14 實驗二棧的基本操作 1 實驗目的15 2 實驗環境15 3 實驗內容,主要 除錯與執行 15 4 總結18 實驗三赫夫曼樹 1 實驗目的18 2 實驗環境18 3 實驗內容,主要 除錯與執行 1...

資料結構實驗報告

實驗題目 計算機與通訊工程學院 2014 實驗一線性表的應用 實驗目的 1 掌握線性表的邏輯結構定義 2 掌握線性表的兩種儲存結構 順序和鏈式 3 掌握順序表和煉表的定義及基本操作 實驗內容 通過程式設計完成具有一定實際意義的課題,加深對線性表應用的理解和掌握。參考題目如下所示。學生可在完成以下題目...