字符串的函數和過程 - 浙江海寧教育網_第1頁
字符串的函數和過程 - 浙江海寧教育網_第2頁
字符串的函數和過程 - 浙江海寧教育網_第3頁
字符串的函數和過程 - 浙江海寧教育網_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、字符串的函數和過程Pascal提供了一些標準函數和標準過程,利用這些標準函數與標準過程,一些涉及到字符串的問題可以靈活解決。1、copy(s,m,n)函數,其中s為string類型,m和n為integer類型。函數返回s中第m個字符開始的n個字符。若m大于s的長度,則返回空串;若n大于從第m個字符開始的余串長度,則取余串。例如:s:='123456789'若s1:=copy(s,3,5);則s1的值是'34567'。若s1:=copy(s,10,5);則s1的值是空串。因為10大于s的長度。若s1:=copy(s,3,9);則s1的值是'3456789&

2、#39;。因為9大于s中從第3個字符開始的余串。2、length(s)函數,其中s為string類型。函數返回s串的實際長度。返回值為整數。例如:s:='abc56789'a:=length(s);則a的值為8。因為s串的長度為8。3、Pos(c, S)函數,其中c和s為string類型。函數返回字符c在s中的位置。若c是s的一個子串,則返回c中第一個字符在s中的位置;若c非s的一個子串,則返回0。例如:S := 'abc123.5'若k:=Pos('ab', S);則k的值為1。若k:=Pos('bd', S);則k的值為0。4

3、、Insert(s1,S, w)過程,其中s1和s為string類型,m為integer類型。過程是將s1插到s中第w位。例如:S:='abc123'Insert('def', S, 4); 則s的值是'abcdef123'。5、delete(s,m,n)過程,其中s為string類型,m和n為integer類型。過程是刪除s中第m個字符開始的n個字符串。若m大于s的長度,則不刪除;否則,若n大于s中從第m個字符開始的余串長度,則刪除余串。例如:s:=abcdefgh;若delete(s,3,4);則s的值是abgh;若delete(s,3,7)

4、;則s的值是ab。6、str(w,s)過程,其中w是integer或real類型,s是string類型。過程將數值w轉換成字符串。例如:w:=123;str(w,s);則s的值為123。例題:1、 對輸入的一句子實現(xiàn)查找且置換的功能。如:有一個句子This is my new book.That is my pencil.現(xiàn)要將my替換為your。分析:先在句子中找到第一個my,并將它刪除,再在該位置插入your,繼續(xù)往后找下一個my,找到后刪除并插入your,重復直到找完為止。程序如下:program ex8_5;vars1,s,o:string;i:integer;beginwrite(&

5、#39;The text:');readln(s1);/輸入一個句子write('Find:');readln(s);/輸入要查找的子串write('Replace:');readln(o);/輸入要替換的子串i:=pos(s,s1);/查找子串s1在s中的第一個位置while i<>0 do begindelete(s1,i,length(s);/刪除子串s1insert(o,s1,i);/插入子串oi:=pos(s,s1);/繼續(xù)查找下一個子串s1在s中的位置end;writeln(s1);readln;end.2、輸入一串字符,字符個數

6、小于100,以“.”為結束標志。判定它是否是回文。上一課中是用字符數組來做,這里改為用字符串做。程序如下:program ex;var str:string80;I,j,L:integer;begin write(input a string); readln(str); L:=length(str);/取出字符串str的長度給L j:=1; /j指向字符串的第1個位置I:=L-1; /i指向字符串倒數第2個位置,因為倒數第1個位置是“” while (j<I) and (strj=strI) do begin j:=j+1;I:=I-1 end; /循環(huán)判斷前后字符是否相同,如果相同,

7、則j遞增1,i遞減1 if j>=I then writeln(str,is not a palindrome.) else writeln(str,is a palindrome.)end.3、字符串加密輸入一個字符串,對每個英文字母替換成后一個字母進行加密,只替換字母,其它不變。輸出加密后的字符串。如果是Z和z,則用A和a替換。如:輸入:I am a student.輸出:J bn b tuvefou. 輸入:This is zoo. 輸出:Uijt jt app.分析: 從第1個字母開始,一個個判斷,如果是ay或AY,則要用后一個字母代替,可以用chr(ord(si)+1)表示si

8、的后一個字母。因為ord(si)表示si的ASCII碼值,加1表示后一個ASCII碼值,將ASCII碼值轉回字母,要用chr函數。對于字母z和Z,因為要變?yōu)閍和A,要用chr(ord(si)-25)。程序如下:方法一:用字符串實現(xiàn)Program ex;var s:string; i:integer;begin readln(s); for i:=1 to length(s) do if (si>='a')and(si<'z')or(si>='A')and(si<'Z') then si:=chr(ord(s

9、i)+1) else if (si='z')or(si='Z') then si:=chr(ord(si)-25);writeln(s);end.方法二:用字符數組實現(xiàn)var s:array1.1000 of char; i,k:integer;begin k:=0; repeat inc(k); read(sk); until ord(sk)=13;/以回車符作為結束標志,因為回車符的ASCII碼值為13。 for i:=1 to k do /k為輸入字符串的長度 if (si>='a')and(si<'z')or(

10、si>='A')and(si<'Z') then si:=chr(ord(si)+1) else if (si='z')or(si='Z') then si:=chr(ord(si)-25); for i:=1 to k do write(si);end.說明:方法一用字符串實現(xiàn),輸入的字符串最多只能是255個字符,方法二用字符數組實現(xiàn),輸入的字符可以超過255個,具體由定義數組時決定。練習:1、 輸入一行字符,將其中的大寫字母改為小寫字母,其它字符不變,然后逆向輸出。2、 輸入一個字符串,以回車符結束。將其中所有的大寫字母用其后1個替換,小寫字母用前面1個替換,然后輸出加密后的字符串。其中大寫Z用A”替換,小寫a用z替換。3、 輸入4個字符串,然后按從小到大順序輸出。下表是標準函數表標準函數是pascal語言預先定義的、用戶可直接使用的函數。函數意義自變量x的類型函數值類型Abs(x)|x|實型或整型與x相同Sqr(x)xX2實型或整型與x相同Sqrt(x)實型或整型實型Trunc(x)舍去x的小數部分實型或整型整型Round(x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論