Đề bài: Nhập vào một xâu kí tự s, hãy viết chương trình in hoa tất cả các chữ cái đầu tiên trong mỗi chữ.
#TEST
Input: 'bUI qUOC kHANH'Output: 'BUI QUOC KHANH'
Input: 'Bui quoc khanh'
Output: 'Bui Quoc Khanh'
#Chương trình
{Bai tap turbo pascal kieu xau phan 3 - khanh blog} Program string3; uses crt; var s: string; i: integer; begin clrscr; write('Nhap xau: ');readln(s); s:=' '+s; for i:=1 to length(s) do if (s[i]=' ')and(s[i+1]<>' ') then s[i+1]:=upcase(s[i+1]); delete(s,1,1); write(s); readln; end.
Bài này cũng khá là đơn giản, mỗi chữ trong xâu được phân cách nhau bởi một dấu cách. Cho nên ta chỉ việc thực hiện một vòng lặp từ 1 tới length(s), nếu ta gặp được một phần tử của s là một dấu cách (s[i]=' ') và phần tử tiếp theo không phải là một dấu cách (s[i+1]<>' ') thì ta sẽ in hoa phần tử tiếp theo đó (s[i+1]:=upcase(s[i+1])).
Lưu ý: Đầu tiên trong chương trình ta phải thêm một dấu cách vào đầu xâu s (s:=' '+s), cuối chương trình ta cũng phải xóa đi một phần tử đầu tiên trong xâu (delete(s,1,1)). Lí do khá đơn giản, ví dụ xâu s='bUI khanh': Ta sẽ thực hiện vòng lặp từ 1 tới length(s), tuy nhiên trước kí đầu tiên trong xâu lại không có dấu cách nào nên ta sẽ thêm vào, khi đó s=' bUI khanh'. Sau khi thực hiện chương trình xong thì xâu là s=' BUI Khanh', có một dấu cách ở đầu xâu mà ta đã thêm vào, bây giờ sau khi thức hiện xong thì nó bị thừa nên ta xóa nó đi (delete(s,1,1)).
Comments
Post a Comment
» Vui lòng không spam vì nó sẽ bị xóa ngay sau đó.
» Nếu chèn code hãy mã hóa trước khi chèn vào nhận xét.
» Nếu thủ thuật Blog không áp dụng được thì hãy để lại URL blog để mình tiện kiểm tra.