《字符與字符串》PPT課件_第1頁
《字符與字符串》PPT課件_第2頁
《字符與字符串》PPT課件_第3頁
《字符與字符串》PPT課件_第4頁
《字符與字符串》PPT課件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 字符與字符串字符與字符串東城八小 李計(jì)綢字符型用字符型用char作為標(biāo)識符。字符型必需用單引號括起來,作為標(biāo)識符。字符型必需用單引號括起來,字母作為字符型時,大小寫是不等價(jià)的,并且字符型只允許單字母作為字符型時,大小寫是不等價(jià)的,并且字符型只允許單引號中有一個字符,否那么就是字符串。引號中有一個字符,否那么就是字符串。Var a:char;a:=b;a:=B;a:=2;一、字符型一、字符型知識點(diǎn):知識點(diǎn):1、字符的、字符的ASCII碼序號:一一對應(yīng)關(guān)系碼序號:一一對應(yīng)關(guān)系字符字符0123456789ASCII48495051525354555657字符ABCZASCII65666790字符a

2、bczASCII 979899122、函數(shù):、函數(shù):ord(x) chr(x) 、ord(x):前往字符前往字符x的的ASCII碼。碼。i:=ord(A); j:=ord(B);n:=ord(1); write(I,j,n); 65 66 49 、 chr(x):前往:前往ASCII碼為碼為x的字符。的字符。 var a:char; a:=chr(98); writeln(a); write(chr(97); 3、字符大小的比較、字符大小的比較(相應(yīng)字符相應(yīng)字符ASCII碼大小的比較碼大小的比較):ASCII碼大的字符大。碼大的字符大。ba 51 aA4、數(shù)字字符轉(zhuǎn)換為相應(yīng)的數(shù)字的方法。、數(shù)字

3、字符轉(zhuǎn)換為相應(yīng)的數(shù)字的方法。 var x:char; a:integer; x:=3; a:=ord(x)-48; 練習(xí)標(biāo)題:練習(xí)標(biāo)題: 從鍵盤上輸入一串字符能夠含數(shù)字、小寫字母,以從鍵盤上輸入一串字符能夠含數(shù)字、小寫字母,以# #作為輸入作為輸入終了標(biāo)志。終了標(biāo)志。編程完成:編程完成:統(tǒng)計(jì)輸入字符中每個小寫字母出現(xiàn)的次數(shù)沒有出現(xiàn)的不輸出。統(tǒng)計(jì)輸入字符中每個小寫字母出現(xiàn)的次數(shù)沒有出現(xiàn)的不輸出。樣例:樣例:輸入:輸入:2bcdaab33wycc#2bcdaab33wycc#輸出:輸出:a 2a 2b 2b 2c 3c 3d 1d 1w 1w 1y 1 y 1 算算法法一一:var ch:char

4、; n,i:integer; a:array1.26 of integer; 統(tǒng)計(jì)字母出現(xiàn)的次數(shù)統(tǒng)計(jì)字母出現(xiàn)的次數(shù)begin for i:=1 to 26 do ai:=0; read(ch); while ch# do begin if(ch=a)and(ch0 then writeln(chr(i+96), ,ai);end.var ch:char; n,i:integer; a:array97.122 of integer; 統(tǒng)計(jì)字母出現(xiàn)的次數(shù)統(tǒng)計(jì)字母出現(xiàn)的次數(shù)begin for i:=97 to 122 do ai:=0; read(ch); while ch# do begin if

5、(ch=a)and(ch0 then writeln(chr(i), ,ai);end.算算法法二二:算算法法三三:var ch:char; n,i:integer; a:arraya.z of integer; 統(tǒng)計(jì)字母出現(xiàn)的次數(shù)統(tǒng)計(jì)字母出現(xiàn)的次數(shù)begin for ch:=a to z do ach:=0; read(ch); while ch# do begin if(ch=a)and(ch0 then writeln(ch, ,ach);end.字符串用于存放批量字符的一串字符。字符串用于存放批量字符的一串字符。 VarVar:a a:string;string;或或VarVar:a

6、a:stringn;stringn;A:=A:=hellohello其中正整數(shù)其中正整數(shù)n(1=n=255)n(1=n=255)表示構(gòu)成字符串的字符最多個數(shù)。表示構(gòu)成字符串的字符最多個數(shù)。假設(shè)字符串闡明中沒有指定長度,缺省值為假設(shè)字符串闡明中沒有指定長度,缺省值為255255。FreepascalFreepascal中新添加的字符串類型:中新添加的字符串類型:ansistring;ansistring;默許長度可達(dá)默許長度可達(dá)2562 -1=655352562 -1=65535Var St:ansistring;Var St:ansistring;二、字符串二、字符串操作操作 類型類型 作用作

7、用 返回值返回值 例子例子 length(s)函數(shù)函數(shù) 求字符串求字符串s的長度的長度整型整型s:=123456789;l:=length(s); l的值為的值為9copy(s,w,k)函數(shù)函數(shù) 復(fù)制復(fù)制s中從中從w開始的開始的k位位字符串字符串s:=123456789;s1:=copy(s,3,5); s1的值是的值是34567pos(c, S)函數(shù)函數(shù) 求字符求字符(串串)c在串在串s中的位中的位置置整型整型S := 126.5;i :=Pos(6 , S); i的值為的值為3+運(yùn)算符運(yùn)算符 將兩個字符串連接起來將兩個字符串連接起來 s1:=1234; s2:=5678;s:=s1+s2;

8、 12345678val(s,k,code)過程過程 將字符串將字符串s轉(zhuǎn)為數(shù)值,存轉(zhuǎn)為數(shù)值,存在在k中;中;code是錯誤代碼是錯誤代碼 var s:string;k,code:integer;s:=1234;val(s,k,code);write(k); k=1234str(i,s)過程過程 將數(shù)值將數(shù)值i轉(zhuǎn)為字符串轉(zhuǎn)為字符串s i:=1234;str(i,s); write(s); s=1234delete(s,w,k)過程過程 在在s中刪除從第中刪除從第w位開始位開始的的k個字符個字符 s := Honest Abe Lincoln;Delete(s,8,4);Writeln(s);

9、Honest Lincoln insert(s1, S, w)過程過程 將將s1插到插到s中第中第w位位 S := Honest Lincoln;Insert(Abe , S, 8); Honest Abe Lincoln 字符串的有關(guān)操作字符串的有關(guān)操作字符串運(yùn)用中的有關(guān)闡明和本卷須知字符串運(yùn)用中的有關(guān)闡明和本卷須知: :1 1、字符串的輸入和輸出、字符串的輸入和輸出: :輸入輸入: :字符串是以回車作為的終了標(biāo)志字符串是以回車作為的終了標(biāo)志. .所以輸入必需所以輸入必需readln(s)readln(s);每個每個readlnreadln語句只能讀入一個字符串。不能語句只能讀入一個字符串。

10、不能readln(s1,s2); readln(s1,s2); 輸出輸出:writeln(s); :writeln(s); 2 2、字符串可以和數(shù)組一樣操作:、字符串可以和數(shù)組一樣操作: a:= a:=nabcdegnabcdeg; ; 那么:那么:a1:=a1:=n n;a3:=b;a3:=b; 輸出:輸出:writeln(a);writeln(a); 或:或:for i:=1 to length(a) do write(ai);for i:=1 to length(a) do write(ai);3 3、從鍵盤只能接受、從鍵盤只能接受127127個字符個字符; ;普通都是文件輸入。普通都是

11、文件輸入。4 4、嚴(yán)厲區(qū)分?jǐn)?shù)字字符、數(shù)字字符串與數(shù)值的區(qū)別,但可以相互、嚴(yán)厲區(qū)分?jǐn)?shù)字字符、數(shù)字字符串與數(shù)值的區(qū)別,但可以相互轉(zhuǎn)化。轉(zhuǎn)化。 4 44 4 1326132613261326 如:如:var a:char; i:integer;var a:char; i:integer; a:= a:=4 4;i:=ord(a)-48; writeln(i); i=4;i:=ord(a)-48; writeln(i); i=45、字符串大小的比較。、字符串大小的比較。 123=123 1234512325 123451234 4561234566、數(shù)字串轉(zhuǎn)化為數(shù)值型、數(shù)字串轉(zhuǎn)化為數(shù)值型 兩種方法:兩

12、種方法: 一、過程一、過程 val 二、直接轉(zhuǎn)化二、直接轉(zhuǎn)化1、輸入一個正整數(shù)、輸入一個正整數(shù)n10250,求它的各位數(shù)字之和求它的各位數(shù)字之和S。var n:string; s,k,i:integer;begin readln(n); k:=length(n); s:=0; for i:=1 to k do s:=s+ord(ni)-48; writeln(s);end.字符串運(yùn)用舉例:字符串運(yùn)用舉例:2、編寫一個程序,統(tǒng)計(jì)從鍵盤輸入的、編寫一個程序,統(tǒng)計(jì)從鍵盤輸入的n(100)個英個英文單詞中以文單詞中以c開頭的單詞開頭的單詞,并輸出個數(shù)。并輸出個數(shù)。樣例:樣例:輸入:輸入:4ancatb

13、eeCow輸出:輸出:catCow2var a:array1.100 of string; 記錄輸入的單詞記錄輸入的單詞 n,i,s:integer;begin readln(n); 輸入單詞個數(shù)輸入單詞個數(shù) for i:=1 to n do 輸入單詞輸入單詞 readln(ai); s:=0; 記錄單詞中一記錄單詞中一c開頭的數(shù)開頭的數(shù)目目 for i:=1 to n do if (ai,1=c)or(ai,1=C) then begin s:=s+1; 累加累加 writeln(ai); 輸出以輸出以c開頭的單詞開頭的單詞 end; writeln(s);end.3、編程驗(yàn)證一個數(shù)是不是是

14、回文數(shù)、編程驗(yàn)證一個數(shù)是不是是回文數(shù)10250一個數(shù)的第一位和倒數(shù)第一位一樣,第二位和倒數(shù)第二位一一個數(shù)的第一位和倒數(shù)第一位一樣,第二位和倒數(shù)第二位一樣樣如:如:31,3443。樣例:樣例:輸入:輸入:123456435400565654656565輸出:輸出:novar a:string; n,i,len:integer; yn:boolean;begin readln(a); len:=length(a); n:=len div 2; yn:=true; for i:=1 to n do if aialen+1-i then begin yn:=false; break; end; if

15、yn then writeln(yes) else writeln(no);end.方法一方法一var a:string; i,j,k:integer;begin readln(a); k:=length(a); i:=1; j:=k; while (ai=aj)and(i=j then writeln(yes) else writeln(no);end.方法二方法二4、完成計(jì)算器功能:完成、完成計(jì)算器功能:完成30000以內(nèi)的正整數(shù)加法運(yùn)算。以內(nèi)的正整數(shù)加法運(yùn)算。樣例樣例:輸入輸入:130+100輸出輸出:230算法:算法:1找到找到+的位置的位置k。2將運(yùn)算符前的字符轉(zhuǎn)化為數(shù)值將運(yùn)算符前的

16、字符轉(zhuǎn)化為數(shù)值a,運(yùn)算,運(yùn)算符后的字符串轉(zhuǎn)化為符后的字符串轉(zhuǎn)化為b。3求求a+b的值。的值。var a,b,k,c:integer;ab:longint; s:string;begin readln(s); k:=pos(+,s); val(copy(s,1,k-1),a,c); val(copy(s,k+1,length(s)-k),b,c); ab:=a+b; writeln(ab);end.過程:過程:val(s,a,c)中,中,c只能是整型數(shù),假設(shè)只能是整型數(shù),假設(shè)轉(zhuǎn)化勝利轉(zhuǎn)化勝利:c=0。a可以是實(shí)數(shù)也可以是整數(shù)可以是實(shí)數(shù)也可以是整數(shù).Val(12.6,a,c);a:=12.6方法一

17、方法一var a,b,k,c,n,i:integer;ab:longint; s:string;begin readln(s); k:=pos(+,s); n:=length(s); a:=0; for i:=1 to k-1 do a:=a*10+ord(si)-48; b:=0; for i:=k+1 to n do b:=b*10+ord(si)-48; ab:=a+b; writeln(ab);end.方法二方法二5、編程完成、編程完成30000以內(nèi)的正整數(shù)的以內(nèi)的正整數(shù)的+、-、*、/一種運(yùn)算,只一種運(yùn)算,只含一個運(yùn)算符號。含一個運(yùn)算符號。樣例樣例:輸入輸入:130*100輸出輸出:

18、13000var a,b,k,c,len:integer; s:string; op:char;begin readln(s); len:=length(s); for k:=1 to len do if not(sk=0) then break; op:=sk; val(copy(s,1,k-1),a,c); val(copy(s,k+1,length(s)-k),b,c); case op of +:writeln(a+b); -:writeln(a-b); *:writeln(a*b); /:if b=0 then writeln(no answer) else writeln(a/b:0:2); end;end.6 6、刪數(shù)問題、刪數(shù)問題 鍵盤輸入一個正整數(shù),去掉其中恣意鍵盤輸入一個正整數(shù),去掉其中恣意個數(shù)字后剩下的數(shù)字按原左右次序?qū)⒔M成一個個數(shù)字后剩下的數(shù)字按原左右次序?qū)⒔M成

溫馨提示

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

最新文檔

評論

0/150

提交評論