You are on page 1of 66

TRƯỜNG ĐẠI HỌC THỦY LỢI

Khoa Công nghệ thông tin


Bộ môn Tin học và KTTT

LẬP TRÌNH PYTHON

Giảng viên: TS.GVC Bùi Thị Thanh Xuân


Email: xuanbtt@tlu.edu.vn
Điện thoại: 0902001581

1
KIỂU CHUỖI VÀ CÁC
PHÉP TOÁN
Kiểu chuỗi: Định nghĩa

❖Chuỗi là một dãy các kí tự. Mọi kí tự nằm trong “”


(ngoặc kép) và ‘ ’ (ngoặc đơn) đều được xem là
chuỗi trong Python.
❖Chuỗi rỗng là chuỗi không có kí tự nào.
❖Ví dụ về chuỗi:
➢“Day la mot chuoi!”
➢‘Day cung la mot chuoi!’

3
Kiểu chuỗi: Định nghĩa
❖Các kí tự trong chuỗi là các kí tự thuộc bảng mã Unicode
hoặc bảng mã ASCII.

❖Chuỗi trong Python có hỗ trợ tiếng Việt.

❖Kí tự trong chuỗi được đánh chỉ số thứ tự bắt đầu bằng chỉ
số 0, 1, … (theo hướng từ trái sang phải) và bắt đầu từ -1,
-2, … (theo hướng từ phải sang trái).
❖Số kí tự trong chuỗi được gọi là độ dài của chuỗi đó.

T u h o c P y t h o n

Chỉ 0 1 2 3 4 5 6 7 8 9 10 11 12
số
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
4
Kiểu chuỗi
❖Ví dụ 1:

❖Kết quả

5
Kiểu chuỗi

❖Ví dụ 2:

❖Kết quả:

6
Kiểu chuỗi: Thao tác

a. Hàm lấy độ dài


len(biến chuỗi)
Ví dụ 3.

7
Kiểu chuỗi: Thao tác
b. Truy cập đến từng ký tự trong chuỗi
<biến chuỗi> [chỉ số]
Như vậy, nếu đặt n là độ dài của chuỗi, thì các chỉ số của kí tự
được đánh từ 0, 1, …, n – 1 (theo hướng từ trái sang phải) và
đánh chỉ số từ -1, -2, …, – n (theo hướng từ phải sang trái)
Ví dụ:

8
Kiểu chuỗi: Thao tác
c. Ghép chuỗi (cộng chuỗi) và lặp chuỗi
Ghép chuỗi:
❖ Python cho phép tạo chuỗi mới bằng cách ghép các chuỗi
lại với nhau:

<Chuỗi 1> + <Chuỗi 2> + + <Chuỗi n>


❖Trả về chuỗi được tạo thành bằng cách ghép <Chuỗi 1>,
<Chuỗi 2>, … <Chuỗi n> theo thứ tự với nhau.
Ví dụ:

9
Thao tác với chuỗi
c. Ghép chuỗi (cộng chuỗi) và lặp chuỗi
❑ Lặp chuỗi

❖Để ghép nhiều lần một chuỗi lại với nhau, ngoài cách
ghép trực tiếp, Python còn cho phép thực hiện ngắn gọn
hơn:
<biến chuỗi>*<số lần ghép>
<số lần ghép>*<biến chuỗi>

10
Thao tác với chuỗi
c. Ghép chuỗi (cộng chuỗi) và lặp chuỗi
Ví dụ:

11
Thao tác với chuỗi

d. So sánh chuỗi
❖So sánh chuỗi được thực hiện bằng cách lần lượt so sánh
các kí tự từ trái sang phải. Nếu gặp một cặp kí tự không
bằng nhau thì chuỗi nào chứa kí tự lớn hơn sẽ là chuỗi lớn
hơn. Nếu một chuỗi là phần đầu của của chuỗi kia thì
chuỗi đó nhỏ hơn.
❖Ví dụ: Kết quả:

12
Thao tác với chuỗi
e. Lấy chuỗi con
❖Để lấy chuỗi con gồm các kí tự liên tiếp từ chỉ số a
đến chỉ số b – 1 (a ≤ b) ta thực hiện:

<biến chuỗi> [a:b]

Ví dụ:

13
Thao tác với chuỗi

Chú ý:
Lấy a kí tự đầu của chuỗi
<biến chuỗi>[: a]
tức là cũng bằng câu lệnh:
<biến chuỗi>[0: a]
Lấy các kí tự từ chỉ số a đến cuối chuỗi
<biến chuỗi>[a:]
Như vậy
<biến chuỗi>[: a] + <biến chuỗi>[a:] == <biến chuỗi>

<biến chuỗi>[:] == <biến chuỗi>


14
Thao tác với chuỗi

Ví dụ: Chương trình

Kết quả:

15
Thao tác với chuỗi

❖Dạng tham số
<biến chuỗi>[a:b:c]

❖ Trả về chuỗi gồm các kí tự trong <biến chuỗi> có chỉ


số: a, a + c, a + tc với a + tc < b.

f. Đảo ngược thứ tự chuỗi


Để đảo ngược thứ tự của một chuỗi, ta thực hiện:

<biến chuỗi>[: : - 1]

16
Thao tác với chuỗi
f. Đảo ngược thứ tự chuỗi
Để đảo ngược thứ tự của một chuỗi, ta thực hiện:

<biến chuỗi>[: : - 1]

Ví dụ: Kết quả:

17
Thao tác với chuỗi

Một số nhận xét


Trong Python không có kiểu kí tự như nhiều ngôn ngữ lập
trình khác. Mỗi kí tự trong Python được xem như một chuỗi có
độ dài bằng 1.
Khi khai báo một biến chuỗi, ta không thể thay đổi các kí tự
trong biến chuỗi đó.

Ví dụ:

18
Bài tập 1. Tách kí tự số và kí tự chữ cái

Nhập vào một chuỗi gồm các kí tự số và kí tự chữ cái


La-tinh. Hãy tách chuỗi được nhập vào thành hai
chuỗi, một chuỗi chỉ gồm các kí tự chữ số, chuỗi còn
lại gồm các kí tự chữ cái

19
Bài tập 1. Tách kí tự số và kí tự chữ cái

20
Bài tập 2. Chuỗi đối xứng

Một chuỗi được gọi là chuỗi đối xứng nếu đọc chúng từ trái
sang phải cũng giống như đọc từ phải sang trái. Ví dụ:
“madam”, “1221” là các chuỗi đối xứng, chuỗi “12334” không
phải là một chuỗi đối xứng. Viết chương trình nhập vào một
chuỗi và kiểm tra xem có phải là chuỗi đối xứng hay không?

21
Bài tập 2. Minh họa 1

22
Bài tập 2. Minh họa 2

23
Bài tập 3. Nén chuỗi
Cho một chuỗi s gồm các kí tự chữ cái La-tinh thường. Ta thực
hiện nén chuỗi theo quy tắc sau: với một dãy các kí tự giống
nhau liên tiếp, ta sẽ thay thế dãy này bằng:

<kí tự><số lần xuất hiện>

24
Bài tập 3. Minh họa Nén chuỗi

25
Bài tập áp dụng: Giải nén chuỗi

Cho chuỗi s2 được nén bởi chuỗi s1 theo quy tắc


trên (bài tập 3). Hãy đưa ra chuỗi s1.

26
Một số thao tác với chuỗi

1.Tách chuỗi
❖ Phương thức: <biến chuỗi>. split( )

Tách chuỗi thành danh sách các chuỗi con mà kí tự


phân tách là các kí tự trắng (white space).

27
Một số thao tác với chuỗi

1. Tách chuỗi
❖ Một số dạng có tham số

Kí tự phân tách mặc định là kí tự trắng, Python cho phép


người lập trình thay đổi kí tự phân tách này.

a.Tham số kí tự phân tách


<biến chuỗi>.split (<kí tự phân tách>)
b. Tham số về số chuỗi tối đa được tách
<biến chuỗi>.split (<kí tự phân tách>, <số lần tách tối đa>)
Chú ý: Tham số mặc định là -1, nghĩa là tách tất cả. Với tham
số <số lần tách tối đa>, tức là chuỗi được tách thành <số lần
tách tối đa> + 1 chuỗi con. 28
Một số thao tác với chuỗi

Ví dụ:

29
Một số thao tác với chuỗi

Ví dụ:

30
Một số thao tác với chuỗi

2. Chuyển đổi kí tự hoa, kí tự thường


Phương thức: <biến chuỗi>.upper( )
Trả về chuỗi sau khi chuyển đổi các kí tự trong
chuỗi thành kí tự hoa.
Phương thức: <biến chuỗi>.lower( )
Trả về chuỗi sau khi chuyển đổi các kí tự trong
chuỗi thành kí tự thường.
Phương thức: <biến chuỗi>.capitalize( )
Trả về chuỗi sau khi chuyển đổi kí tự đầu tiên
trong chuỗi thành kí tự hoa.

31
Một số thao tác với chuỗi

2. Chuyển đổi kí tự hoa, kí tự thường


Phương thức: <biến chuỗi>.title( )

Trả về chuỗi sau khi chuyển đổi các kí tự đầu


tiên của các từ thành kí tự hoa.

Phương thức: <biến chuỗi>.swapcase( )

Trả về chuỗi sau khi chuyển các kí tự hoa


thành kí tự thường, kí tự thường thành kí tự
hoa.
32
Một số thao tác với chuỗi
2. Chuyển đổi kí tự hoa, kí tự thường
Ví dụ:

33
Một số thao tác với chuỗi

Chú ý:
Sau khi thực hiện các phương thức: str1.upper(),
str1.lower(), str1.capitalize(), str1.title(),
str1.swapcase() thì chuỗi str1 vẫn không thay đổi.

34
Một số thao tác với chuỗi

3. Phép toán in
Phép toán: str1 in str2 trả về True nếu str1 là chuỗi
con của str2; ngược lại, phép toán trả về giá trị
False.

35
Một số thao tác với chuỗi
4. Phương thức đếm số lần xuất hiện
Phương thức <biến chuỗi>.count(str1)

❖Trả về số lần xuất hiện của chuỗi str1 trong <biến chuỗi>.

Tham số với phương thức count()


Phương thức <biến chuỗi>.count (str1, i)
❖Trả về số lần xuất hiện của chuỗi str1 trong <biến chuỗi>
tính từ chỉ số i.
Phương thức <biến chuỗi>.count(str1, i, j)
❖Trả về số lần xuất hiện của chuỗi str1 trong <biến chuỗi>
tính từ chỉ số i đến chỉ số j – 1.

36
Một số thao tác với chuỗi

5. Phương thức tìm kiếm


Phương thức: <biến chuỗi>.find(str1)
Trả về vị trí chỉ số đầu tiên mà chuỗi str1 xuất hiện trong <biến
chuỗi>. Nếu str1 không xuất hiện trong <biến chuỗi> thì kết
quả trả về là -1.
Tham số với phương thức find()
Phương thức <biến chuỗi>.find(str1,i) trả vị trí chỉ số đầu
tiên mà chuỗi str1 xuât hiện trong <biến chuỗi> tính từ chỉ
số i.
Phương thức <biến chuỗi>.find(str1,i,j) trả vị trí chỉ số đầu
tiên mà chuỗi str1 xuất hiện trong <biến chuỗi> tính từ chỉ
số I đến chỉ số j – 1.

37
Một số thao tác với chuỗi

5. Phương thức tìm kiếm

38
Một số thao tác với chuỗi

5. Phương thức tìm kiếm


Chú ý:
Phương thức st.index(str1) cũng trả về vị trí chỉ
số đầu tiên của chuỗi str1 xuất hiện trong st,
nhưng khi str1 không xuất hiện trong st thì
chương trình sẽ báo lỗi.

39
Một số thao tác với chuỗi
6. Phương thức thay thế
Phương thức

<biến chuỗi>.replace (str_old, str_new)

Trả về chuỗi được tạo thành bằng cách thay thế tất cả các
chuỗi con str_old bằng chuỗi str_new trong <biến chuỗi>.

❖Tham số với phương thức replace()


Phương thức

<biến chuỗi>.replace(str_old, str_new, num_max)

Trả về một chuỗi được tạo thành bằng cách thay thế tất cả
các chuỗi con str_old bằng chuỗi str_new nhưng số lần thay
thế nhiều nhất là num_max. Việc thay thế sẽ thực hiện lần
lượt đối với các chuỗi con từ trái sang phải.
40
Một số thao tác với chuỗi

7. Phương thức xóa các kí tự ở bên trái, bên phải chuỗi


Phương thức <biến chuỗi>.lstrip()

❖Trả về một chuỗi được tạo thành bằng cách xóa tất cả các
kí tự trắng (white space) ở bên trái <biến chuỗi>.

Phương thức <biến chuỗi>.rstrip()

❖Trả về một chuỗi được tạo thành bằng cách xóa tất cả các
kí tự trắng ở bên phải <biến chuỗi>.
Phương thức <biến chuỗi>.strip()

❖Trả về một chuỗi được tạo thành bằng cách xóa tất cả các
kí tự trắng ở cả bên trái và bên phải <biến chuỗi>.

41
Một số thao tác với chuỗi
7. Phương thức xóa các kí tự ở bên trái, bên phải chuỗi
❖Tham số với phương thức lstrip(), rstrip(), strip().
Phương thức <biến chuỗi>.lstrip([Các kí tự])
❖Trả về chuỗi được tạo thành bằng cách xóa các kí tự thuộc
tập [Các kí tự] nằm liền kề bên trái <biến chuỗi>.

Phương thức <biến chuỗi>.rstrip([Các kí tự])


❖Trả về chuỗi được tạo thành bằng cách xóa các kí tự thuộc
tập [Các kí tự] nằm liền kề bên phải <biến chuỗi>.

Phương thức <biến chuỗi>.strip([Các kí tự])


❖Trả về chuỗi được tạo thành bằng cách xóa các kí tự thuộc
tập [Các kí tự] nằm liền kề bên trái hoặc bên phải <biến
chuỗi>.
42
Một số thao tác với chuỗi
8. Căn chỉnh chuỗi
Phương thức <biến chuỗi>ljust(width)

Trả về một chuỗi có độ dài width bằng cách thêm các kí tự


trắng về bên phải <biến chuỗi>. Nói cách khác, phương thức
tạo ra một chuỗi độ dài width, trong đó <biến chuỗi> được
căn bên trái, các kí tự trắng được thêm về bên phải.

Phương thức <biến chuỗi>.rjust(width)

Trả về một chuỗi có đô dài width bằng cách thêm các kí tự


trắng về bên trái <biến chuỗi>.

Phương thức <biến chuỗi>.center(width)


Trả về chuỗi có độ dài width bằng cách thêm các kí tự trắng
vào cả hai bên (trái, phải) sao cho <biến chuối> được căn ở
chính giữa 43
Một số thao tác với chuỗi

8. Căn chỉnh chuỗi


❖Tham số với phương thức ljust(), rjust(), center()
❖Ở trên, các phương thức ljust(), rjust(), center() sử
dụng tham số mặc định là kí tự trắng. Các phương
thức này có thể sử dụng tham số là các kí tự khác
kí tự trắng.
❖<biến chuỗi>.ljust (width, [Kí tự thêm vào])
❖<biến chuỗi>.rjust (width, [Kí tự thêm vào])
❖<biến chuỗi>.center(width, [Kí tự thêm vào])

44
Một số thao tác với chuỗi

8. Căn chỉnh chuỗi


Chú ý
❖Python còn cung cấp một phương thức thêm các kí tự ‘0’
vào bên trái. Điều này hay gặp khi thực hiện các chuỗi là
các kí tự số.

❖Phương thức

<biến chuỗi>.zfill(width)
❖Trả về chuỗi có độ dài width bằng cách thêm vào các kí tự
chữ số 0 vào bên trái <biến chuỗi>

45
Một số thao tác với chuỗi
9. Một số phương thức is_
Phương thức <biến chuỗi>.isdigit()
❖Trả về giá trị True nếu <biến chuỗi> chỉ chứa các kí tự chữ
số, ngược lại trả về giá trị False.
Phương thức <biến chuỗi>.isspace()
❖Trả về giá trị True nếu <biến chuỗi> chỉ chứa các kít ự trắng,
ngược lại trả về giá tị False.
Phương thức <biến chuỗi>.islower()
❖Trả về giá trị True nếu <biến chuỗi> chỉ chứa các kí tự chữ
thường, ngược lại trả về giá trị False.
Phương thức <biến chuỗi>.isupper()
❖Trả về giá trị True nếu <biến chuỗi> chỉ chứa các kí tự chữ
hoa, ngược lại trả về giá trị False. 46
Một số thao tác với chuỗi
9. Một phương thức is_
Phương thức <biến chuỗi>.isalpha()

❖Trả về giá trị True nếu <biến chuỗi> chỉ chứa các kí tự thuộc
‘a’. ‘b’, …, ‘z’; ‘A’, ‘B’, …, ‘Z’, ngược lại trả về giá trị False.

Phương thức <biến chuỗi>.istitle()

❖Trả về giá trị True nếu <biến chuỗi> có các từ đều chữ cái
đầu là chữ hoa, ngược lại trả về giá trị False.

47
Một số thao tác với chuỗi
10. Hàm max, min trên chuỗi
Hàm max(<biến chuỗi>)

❖Trả về kí tự lớn nhất trong <biến chuỗi>.


Hàm min(<biến chuỗi>)

❖Trả về kí tự nhỏ nhất trong <biến chuỗi>

11. Hàm eval() cho biểu thức toán học

❖Python cung cấp một hàm rất mạnh cho phép tính giá trị của
các biểu thức toán học đúng. Đó là hàm eval().
❖Hàm eval(str1) trả về giá trị của biểu thức toán học đúng
được viết dưới dạng chuỗi str1.

48
Bài tập 1: Tách từ trong chuỗi

Cho chuỗi chuẩn s. Đưa ra danh sách các từ


trong chuỗi, mỗi từ ghi trên 1 dòng

49
Bài tập 1: Tách từ trong chuỗi

Cho chuỗi chuẩn s. Đưa ra danh sách các từ


trong chuỗi, mỗi từ ghi trên 1 dòng

50
Bài tập 1: Tách từ trong chuỗi

❖Cho chuỗi chuẩn s. Đưa ra danh sách các


từ trong chuỗi, mỗi từ ghi trên 1 dòng

51
Bài tập 2: Tính tổng các chữ số
Cho chuỗi s gồm các chữ số và chữ cái Latinh.
Tính tổng các chữ số có trong chuỗi

52
Bài tập 2: Tính tổng các chữ số

Cho chuỗi s gồm các chữ số và chữ cái Latinh.


Tính tổng các chữ số có trong chuỗi

53
Bài tập 3: Chuỗi hoán vị

54
Bài tập 3: Chuỗi hoán vị

55
Định dạng chuỗi

❖Dùng toán tử %: <chuỗi> % (<các tham số>)


➢Bên trong <chuỗi> có các kí hiệu đánh dấu nơi
đặt lần lượt các tham số
➢Nếu đánh dấu %s: thay thế bằng tham số dạng
chuỗi
➢Nếu đánh dấu %d: thay thế bằng tham số dạng
nguyên
➢Nếu đánh dấu %f: thay thế bằng tham số dạng
thực
➢Có thể thêm tham số chỉ độ rộng của định dạng
(xem ví dụ)

56
Định dạng chuỗi: Ví dụ

57
Định dạng chuỗi

❖Python cho phép định dạng chuỗi ở dạng


f-string
myname = 'DHTL'
s = f'This is {myname}.' # 'This is DHTL.'
w = f'{s} {myname}' # 'This is DHTL. DHTL'
z = f'{{s}} {s}' # '{s} This is DHTL.'
➢Mạnh nhất là định dạng bằng format
# điền lần lượt từng giá trị vào giữa cặp ngoặc nhọn
'a: {}, b: {}, c: {}'.format(1, 2, 3)
# điền nhưng không lần lượt
'a: {1}, b: {2}, c: {0}'.format('one', 'two', 'three')
'two same values: {0}, {0}'.format(1, 2)
# điền và chỉ định từng giá trị
'1: {one}, 2: {two}'.format(one=111, two=222)
58
Định dạng chuỗi bằng format
➢Định dạng bằng format cho phép căn lề phong
phú
# căn giữa: ' aaaa '
'{:^10}'.format('aaaa')
# căn lề trái: 'aaaa '
'{:<10}'.format('aaaa')
# căn lề phải ' aaaa'
'{:>10}'.format('aaaa')
# căn lề phải, thay khoảng trắng bằng -: '------aaaa'
'{:->10}'.format('aaaa')
# căn lề trái, thay khoảng trắng *: 'aaa******'
'{:*<10}'.format('aaaa')
# căn giữa, thay khoảng trắng bằng +: '+++aaaa+++'
'{:+^10}'.format('aaaa')

59
Các phương thức của chuỗi

❖Các phương thức chỉnh dạng


➢capitalize(): viết hoa chữ cái đầu, còn lại viết
thường
➢upper(): chuyển hết thành chữ hoa
➢lower(): chuyển hết thành chữ thường
➢swapcase(): chữ thường thành hoa và ngược
lại
➢title(): chữ đầu của mỗi từ viết hoa, còn lại viết
thường
❖Các phương thức căn lề
➢center(width [,fillchar]): căn lề giữa với độ dài
width
➢rjust(width [,fillchar]): căn lề phải
➢ljust(width [,fillchar]): căn lề trái
60
Các phương thức của chuỗi
❖Các phương thức cắt phần dư
➢strip([chars]): loại bỏ những ký tự đầu hoặc cuối
chuỗi thuộc vào danh sách [chars], hoặc ký tự
trống
➢rstrip([chars]): làm việc như strip nhưng cho bên
phải
➢lstrip([chars]): làm việc như strip nhưng cho bên
trái
❖Tách chuỗi
➢split(sep, maxsplit): tách chuỗi thành một danh
sách, sử dụng dấu ngăn cách sep, thực hiện tối đa
maxsplit lần
▪ Tách các số nhập vào từ một dòng:
input("Test: ").split(',')
➢rsplit(sep, maxsplit): thực hiện như split nhưng
theo hướng ngược từ phía cuối chuỗi
61
Các phương thức của chuỗi
❖Các phương thức khác
▪ join(list): ghép các phần tử trong list bởi phần gạch nối là nội
dung của chuỗi, ví dụ: '-'.join(('1', '2', '3'))
▪ replace(old, new [,count]): thế nội dung old bằng nội dung
new, tối đa count lần
▪ count(sub, [start, [end]]): đếm số lần xuất hiện của sub
▪ startswith(prefix): kiểm tra đầu có là prefix không
▪ endswith(prefix): kiểm tra cuối có là prefix không
▪ find(sub[, start[, end]]): tìm vị trí của sub (-1: không có)
▪ rfind(sub[, start[, end]]): như find nhưng tìm từ cuối
▪ islower(), isupper(), istitle(), isdigit(), isspace(), isalpha(),
isnumeric()
➢index(sub) giống find, nhưng sinh ngoại lệ nếu không tìm
thấy
62
Các hàm dựng sẵn hỗ trợ chuyển đổi

❖Hàm chr(n): chuyển đổi giá trị số sang mã unicode


❖Hàm ord(c): chuyển đổi kí tự unicode sang giá trị số
❖Hàm len(s): trả về độ dài (số kí tự) của chuỗi
❖Hàm str(v): chuyển đổi giá trị của biến v sang thể
hiện ở dạng chuỗi
❖Ví dụ:

63
Tóm tắt nội dung

❖Chuỗi (str) là một dãy các str con độ dài 1 kí tự


➢Nhiều phép toán: nối chuỗi (+), nhân bản (*),
kiểm tra (in)
➢So sánh hai chuỗi theo thứ tự từ điển
➢Hệ thống chỉ mục theo 2 chiều, trái sang phải và
phải sang trái
➢Phép cắt chuỗi: tạo chuỗi mới theo vị trí đầu cuối
➢Ba kiểu định dạng chuỗi: định dạng (%), f-string
và hàm format
➢Nhiều phương thức hỗ trợ thao tác nội dung chuỗi
❖Python có các hàm chuyển đổi giữa số và kí tự
unicode

64
Bài tập về xử lý chuỗi

1) Nhập một chuỗi từ bàn phím, kiểm tra xem nó có tận cùng bởi 3
dấu chấm than hay không (!!!), nếu không thì hãy thêm dấu
chấm than vào cuối để chuỗi có tận cùng là 3 dấu chấm than.

2) Nhập dãy số từ bàn phím (các số được gõ trên cùng một dòng,
cách nhau bởi dấu cách hoặc tab), in ra dãy số vừa nhập.

3) Nhập một tên người từ bàn phím, hãy tách phần họ và tên riêng
của người đó và in chúng ra màn hình (giả thiết họ và tên riêng
chỉ gồm một âm).

4) Nhập một chuỗi từ bàn phím, hãy loại bỏ tất cả các chữ số khỏi
chuỗi và in lại nội dung chuỗi mới ra màn hình.

65
Bài tập về xử lý chuỗi

5) Nhập một dãy các từ từ bàn phím, hãy in ra từ dài nhất trong dãy
vừa nhập, in ra mọi từ có cùng độ dài nhất.

6) Nhập một dãy các từ từ bàn phím, thống kê xem có những chữ cái
nào xuất hiện trong dãy và mỗi chữ xuất hiện bao nhiêu lần?

7) Nhập chuỗi S gồm toàn chữ số và số nguyên N, chỉ ra cách xóa đúng
N kí tự khỏi S để được số có giá trị lớn nhất.

8) Nhập chuỗi S, hãy thay thế tất cả các chữ số trong S bằng kí tự hỏi
chấm (?), sau đó in lại S ra màn hình

9) Nhập chuỗi S, kiểm tra xem chuỗi S có là dạng đối xứng hay không?

66

You might also like