Pascal程序設計(第7課)-字符串_第1頁
Pascal程序設計(第7課)-字符串_第2頁
Pascal程序設計(第7課)-字符串_第3頁
Pascal程序設計(第7課)-字符串_第4頁
Pascal程序設計(第7課)-字符串_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Pascal語言第7課字符類型字符類型為由一個字符組成的字符常量或字符變量。字符常量定義:

const

字符常量='字符'字符變量定義:

Var

字符變量表:char;字符類型是一個有序類型,字符的大小順序按其ASCⅡ代碼的大小而定。函數(shù)succ、pred、ord適用于字符類型。例如:后繼函數(shù):succ('a')='b'

前繼函數(shù):pred('B')='A'

序號函數(shù):ord('A')=65【字符與字符串處理】

Programa1(input,output);Var

ch:char;Begin

For

ch:=‘a(chǎn)’to‘z’dowrite(ch:3);Writeln;{換行輸出下面的內(nèi)容}

For

ch:=‘z’downto

‘a(chǎn)’dowrite(ch:3);Writeln;End.參考程序:★例1:按正序和反序輸出26個英文字母。分析:程序中,我們可以利用字符類型是順序類型這一特性,直接將字符類型變量作為循環(huán)變量,使程序處理起來比較直觀?!锢?:按字母表順序和逆序每隔一個字母打印輸出。Programa2;

var

ch:char;

begin

for

ch:='a'to'z'do

if(ord(ch)-ord('a'))mod2=0then

write(ch:3);writeln;

for

ch:='z'

downto'a'do

if(ord(ch)-ord('z'))mod2=0then

write(ch:3);writeln;

end.參考程序:字符串類型字符串是由字符組成的有窮序列。字符串類型定義:

type<字符串類型標識符>=string[n];var

字符串變量:字符串類型標識符;其中:n是定義的字符串長度,必須是0~255之間的自然整數(shù),第0號單元中存放串的實際長度,程序運行時由系統(tǒng)自動提供,第1~n號單元中存放串的字符。若將string[n]寫成string,則默認n值為255。例如:typeman=string[8];

line=string;

var

name:man;

s:line;【字符與字符串處理】另一種字符串類型的定義方式為把類型說明的變量定義合并在一起。例如:VARname:string[8];s:string;Pascal中,一個字符串中的字符可以通過其對應的下標靈活使用。例如:var

name:string;beginread(name);fori:=1toord(name[0])do

writeln(name[i]);end.

語句writeln(name[i])輸出name串中第i個字符。【字符與字符串處理】字符串的運算和比較由字符串常量、變量和運算符組成的表達式稱為字符串表達式。字符串運算符包括:1.+(連接運算符)例如:'Turbo'+'PASCAL'的結(jié)果是'TurboPASCAL'。(1)若連接的結(jié)果字符串長度超過255,則被截成255個字符;(2)若連接后的字符串存放在定義的字符串變量中,當其長度超過定義的字符串長度時,超過部份字符串被截斷。例如:var

str1,str2,str3:string[8];

begin

str1:='Turbo';

str2:='PASCAL';

str3:=str1+str2;

end.

則str3的值為:'TurboPA'。【字符串的操作】2.=.<>.<.<=.>.>=(關(guān)系運算符)兩個字符串的比較規(guī)則為,從左到右按照ASCⅡ碼值逐個比較,遇到ASCⅡ碼不等時,規(guī)定ASCⅡ碼值大的字符所在的字符串為大。例如:'AB'<'AC'結(jié)果為真;'12'<'2'結(jié)果為真;‘PASCAL’=‘PASCAL’結(jié)果為假;在程序中,當執(zhí)行到兩個字符串進行比較時,Pascal會自動將兩個字符串中的每一個字符逐個比較,直至遇到不等而決定其大小。這種比較方式是計算機中字符串比較的一般方式。【字符串的操作】例3對給定的10個國家名,按其字母的順序輸出。參考程序:programa3;var

name:array[1..10]ofstring[20];

i,j,k:integer;

t:string[20];beginfori:=1to10doreadln(name[i]);fori:=1to9do

{選擇排序}

begink:=i;forj:=i+1to10doifname[k]>name[j]thenk:=j;ifk<>ithenbegint:=name[i];

name[i]:=name[k];

name[k]:=t;end;end;fori:=1to10dowriteln(name[i]);end.字符串的函數(shù)和過程Pascal提供了八個標準函數(shù)和標準過程,見下表,利用這些標準函數(shù)與標準過程,一些涉及到字符串的問題可以靈活解決。函數(shù)和過程名功能說明copy(s,m,n)取s中第m個字符開始的n個字符若m大于s的長度,則返回空串;否則,若m+n大于s的長度,則截斷l(xiāng)ength(s)求s的動態(tài)的長度返回值為整數(shù)pos(sub,s)在s中找子串sub返回值為sub在s中的位置,為byte型insert(sour,s,m)在s的第m個字符位置處插入子串sour若返回串超過255,則截斷delete(s,m,n)刪除s中第m個字符開始的n個字符串若m大于s的長度,則不刪除;否則,若m+n大于s的長度,則刪除到結(jié)尾str(x[:w[:d]],s)將整數(shù)或?qū)崝?shù)x轉(zhuǎn)換成字符串sw和d是整型表達式,意義同帶字寬的write語句val(s,x,code)將字符串S轉(zhuǎn)換成整數(shù)或?qū)崝?shù)x若S中有非法字符,則code存放非法字符在S中的下標;否則,code為零。code為整型upcase(ch)將字母ch轉(zhuǎn)換成大寫字母若ch不為小寫字母,則不轉(zhuǎn)換例4:對輸入的一句子實現(xiàn)查找且置換的功能。參考程序:programa4;

var

se,s,o:string;

i:integer;

beginwrite('Thetext:');readln(se);write('Find:');

readln(s);write('Replace:');

readln(o);i:=pos(s,se);whilei<>0dobegindelete(se,i,length(s));insert(o,se,i);i:=pos(s,se);end;

writeln(se);end.

另一種字符串類型的定義方式是使用一維數(shù)組定義成緊縮字符數(shù)組的形式。

例如:VARa:array[1..10]ofchar;b:packedarray[1..10]ofchar;

其中變量a為一般的一維數(shù)組,b為緊縮字符數(shù)組。緊縮字符數(shù)組存放字符串,除了可以節(jié)約存儲空間之外,還使得字符串的讀、寫、比較、賦值等運算變得簡單了?!咀址c字符串處理】練習1:從鍵盤上隨意輸入20個字母,按照字母表的順序?qū)⑺鼈冚敵觥?/p>

練習2:讀入10個單詞,按照字典次序排列單詞。

練習參考參考返回programlianxi1(input,output);

var

a:string;i,j:integer;beginread(a);fori:=97to122doforj:=1to20doiford(a[j])=ithenwrite(a[j]);end.練習1:從鍵盤上隨意輸入20個字母,按照字母表的順序?qū)⑺鼈冚敵觥⒖汲绦颍悍祷鼐毩?:讀入10個單詞,按照字典次序排列單詞。programlianxi2(input,output);typeword=packedarray[1..15]ofchar;

var

a:array[1..10]ofword;t:word;i,j:integer;beginfori:=1to10do

readl

溫馨提示

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

評論

0/150

提交評論