Kiểu xâu
Trang 1 trong tổng số 1 trang
Kiểu xâu
String
I. §Þnh nghÜa xu kÝ tù (String)
Xu kÝ tù cã thÓ hiÓu ¬n gi¶n lµ mét m¶ng mét chiÒu cã kiÓu phÇn tö lµ c¸c kÝ tù (CHAR).
Nhng xu kÝ tù chØ cã thÓ cã tèi a 255 kÝ tù nhng nã cã c¸c lÖnh xö lÝ xu nh : xo¸ mét o¹n trong xu, copy mét o¹n trong xu... mµ m¶ng kÝ tù kh«ng cã îc
II. C¸ch khai b¸o xu
VAR Tªn_xu : STRING [é_dµi_cùc_¹i];
VD : Ta khai b¸o
FileName : String[20];
Sau ã ta thùc hiÖn phÐp g¸n :
FileName := 'VIDU.PAS';
Lóc nµy chiÒu dµi thùc sù cña xu lµ 8 mÆc dï é dµi cùc ¹i lµ 20
Ta xÐt cÊu tróc cña xu :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
V I D U . P A S * * * * * * * * * * * *
KÝ tù 0 chøa é dµi thùc sù cña xu, ta cã thÓ viÕt
§é_dµi_thùc_sù_cña_xu = Ord(Filename[0]);
KÝ hiÖu * biÓu diÔn kÝ tù kh«ng x¸c Þnh
NÕu trong qu¸ tr×nh thao t¸c, é dµi cña xu vît qu¸ é dµi cùc ¹i th× m¸y sÏ tù éng c¾t bá phÇn phÝa sau xu kÓ tõ vÞ trÝ é dµi cùc ¹i.
VD : Khi ta g¸n
FileName := 'HOI THI TIN HOC TRE KHONG CHUYEN';
Th× lóc ã
FileName = 'HOI THI TIN HOC TRE ';
III. Truy nhËp vµo phÇn tö cña m¶ng: Do cÊu tróc of xu t¬ng tù of m¶ng nªn c¸ch truy xuÊt of nã còng t¬ng tù of m¶ng
Tªn_xu [chØ_sè_phÇn_tö]
VD : Muèn g¸n phÇn tö thø 3 cña xu lµ 'A'
Filename [3] := 'A';
IV. C¸c thao t¸c trªn xu
1. PhÐp céng xu
VD : S1 := 'PHAN MEM ';
S2 := 'SANG TAO';
S := S1 + S2;
Sau ã S = 'PHAN MEM SANG TAO';
2. So s¸nh xu kÝ tù: Khi so s¸nh 2 xu m¸y sÏ so s¸nh tõng cÆp kÝ tù cña 2 xu tõ tr¸i qua ph¶i theo gi¸ trÞ cña b¶ng m· ASCII NÕu 2 xu cã é dµi kh¸c nhau song sè kÝ tù gi«ng nhau Õn é dµi cña xu ng¾n nhÊt gièng nhau th× xu cã é dµi ng¾n h¬n th× bÐ h¬n
VD : 'FILENAME' < 'FILENAMEA' cho gi¸ trÞ TRUE
'FiLENAME' < 'FILENAME' cho gi¸ trÞ FALSE
'FILENAME' = 'FILENAME' cho gi¸ trÞ TRUE
3. Thao t¸c nhËp xut: Cã thÓ dïng c¸c hµm Write, Writeln, Readln èi víi xu kÝ tù
VD : readln(st); Writeln(st);
V. C¸c hµm chuÈn xö lÝ xu kÝ tù
1. Length (St): Hµm cho ta é dµi cña xu kÝ tù St
VD : l := length(st);
2. Delete (St, Pos, Num): Thñ tôc xo¸ i Num kÝ tù kÓ tõ vÞ trÝ Pos trong xu St
VD :
S := 'TOI DI HOC';
Delete(s,5,3);
{ Sau ã S = 'TOI HOC' }
3. Insert (Obj, St, Pos);: Thñ tôc xen xu Obj vµo xu St t¹i vÞ trÝ Pos
VD : S := 'THANH DA NANG';
Insert('PHO ',S,7);
{ Sau ã S = 'THANH PHO DA NANG' }
4. Str (Value, St): Thñ tôc biÕn æi gi¸ trÞ b»ng sè nguyªn hoÆc thùc Value thµnh mét xu biÓu diÔn sè ã. C¸ch biÓu diÔn cña St sÏ îc quy c¸ch do qui c¸ch cña Value
VD : I := 512; Str(I:5,St);
SÏ cho St = ' 512';
5.Val (St, Var1, Code):Thñ tôc biÕn æi xu St (biÓu diÔn sè nguyªn, thc) thµnh 1 sè nguyªn thùc chøa trong Var1. Code lµ sè nguyªn Ó ph¸t hiÖn lçi,if phÐp biÕn æi óng th× Code cã gtrÞ = 0. if sai Code sÏ lµ vÞ trÞ of kÝ tù sai.
VD : St := '123.56'; Val(st,X,Result);
SÏ cho X=123.56 vµ Result=0
St := '123X'; Val(st,X,result); SÏ cho X kh«ng x¸c Þnh vµ Result=4
6. Copy (St, Pos, Size): Hµm Copy sÏ nhËn Size kÝ tù trong xu St tõ vÞ trÝ Pos
VD : St := '123456789'; St1 := Copy(St,3,2); SÏ cho St1='34'
7. Concat(St1,St2,...StN): Hµm ghÐp nèi c¸c xu St1,St2,...StN thµnh xu kÝ tù theo thø tù · viÕt
VD : St1 := 'BORLAND ';
St2 := 'PASCAL '; St3 := '7.0';
St := Concat(St1,St2,St3); SÏ cho St='BORLAND PASCAL 7.0';
C¸ch viÕt nµy t¬ng tù víi ST := St1 + St2 + ... + StN
8. Pos (Obj, Target): Hµm tr¶ l¹i vÞ trÝ Çu tiªn cña xu Obj gÆp trong xu Target
Pos = 0 nÕu kh«ng t×m thÊy
VD : St := '123456789';
Pos('45',St) cho gi¸ trÞ b»ng 3
Pos('4X',St) @1cho gi¸ trÞ 0 v× kh«ng t×m thÊy.
BT:
Bµi1:NhËp 1 chuçi kÝ tù. TØa bá dÊu c¸ch bªn ph¶i, tr¸i, tØa gi÷a (if gi÷a 2 tõ cã nhiÒu dÊu c¸ch chØ Ó l¹i 1 dÊu c¸ch
VD : " que huong " -> "que huong"
uses crt;
var s:string; i:byte;
begin
clrscr;{Xo¸ mµn h×nh}
write('S = ');
readln(s);{§äc S}
while(s[1]=' ')and(s<>'')do delete(s,1,1);{Xo¸ c¸c dÊu c¸ch Çu cña S}
while(s[length(s)]=' ')and(s<>'')do delete(s,length(s),1);{Xo¸ c¸c dÊu c¸ch ë cuèi}
i:=1;{G¸n i b»ng 1}
while i
begin
if(s[i]=' ')and(s[i+1]=' ')then delete(s,i,1){NÕu s[i]lµ ' ' vµ s[i+1]còng lµ ' ' th×}
else inc(i);{Ngîc l¹i t¨ng i}
end;
writeln('Sau khi doi : ',s);{XuÊt s}
readln;
end.
Bµi 2: NhËp chuçi kÝ tù, xem chuçi ã cã èi xøng nhau kh«ng
VD : "ABBA" lµ èi xøng
"RADAr" lµ èi xøng
"AFF" lµ kh«ng èi xøng
Híng dÉn
i:=1;j:=length(s);
while(upcase(s[i])=upcase(s[j]))and(i<=j)do
begin
inc(i);dec(j);
end;
NÕu i>j th× chuçi èi xøng, ngîc l¹i th× kh«ng èi xøng}
uses crt;
var s:string;{Xu S} i,j:byte;{i,j kiÓu byte}
begin
clrscr;{Xo¸ mµn h×nh} write('S = ');readln(s);{§äc S}
i:=1;j:=length(s);{G¸n i b»ng 1 vµ j b»ng chiÒu dµi s}
while(upcase(s[i])=upcase(s[j]))and(i<=j)do{Trong khi s[i]=s[j] vµ i<=k th×}
begin
inc(i);dec(j);{T¨ng i. Gi¶m j}
end;
if i>j then write('Xau doi xung')else write('Xau khong doi xung');{XuÊt kÕt qu¶}
readln;
end.
Nguyễn Tấn Thành- Morderater
- Tổng số bài gửi : 11
Age : 31
Đến từ : toán tin_2007-2010
Registration date : 16/02/2009
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|