Viết chương trình nhập 2 xâu bất kỳ từ bàn phím đưa ra màn hình xâu có độ dài ngắn hơn

Top 1 ✅ Viết nhập từ bàn phím xâu kí tự S có độ dài không quá 200. Hãy đưa ra màn hình xâu S khi đã chuyển thành xâu chứa các kí tự in hoa. nam 2022 được cập nhật mới nhất lúc 2021-12-27 16:57:41 cùng với các chủ đề liên quan khác

Viết nhập từ bàn phím xâu kí tự S có độ dài không quá 200.Hãy đưa ra màn hình xâu S khi đã chuyển thành xâu chứa các kí tự in hoa.

Hỏi:

Viết nhập từ bàn phím xâu kí tự S có độ dài không quá 200.Hãy đưa ra màn hình xâu S khi đã chuyển thành xâu chứa các kí tự in hoa.

Viết nhập từ bàn phím xâu kí tự S có độ dài không quá 200.Hãy đưa ra màn hình xâu S khi đã chuyển thành xâu chứa các kí tự in hoa.

Đáp:

kimlien:

#include <iostream>using namespace std;int main(){    string s;    getline(cin,s);    for(int i=0;i<s.size();i++){        if(s[i]>=’a’&&s[i]<=’z’){            s[i]-=32;        }    }    cout<<s;    //samon247    return 0;

}

kimlien:

#include <iostream>using namespace std;int main(){    string s;    getline(cin,s);    for(int i=0;i<s.size();i++){        if(s[i]>=’a’&&s[i]<=’z’){            s[i]-=32;        }    }    cout<<s;    //samon247    return 0;

}

kimlien:

#include <iostream>using namespace std;int main(){    string s;    getline(cin,s);    for(int i=0;i<s.size();i++){        if(s[i]>=’a’&&s[i]<=’z’){            s[i]-=32;        }    }    cout<<s;    //samon247    return 0;

}

Viết nhập từ bàn phím xâu kí tự S có độ dài không quá 200.Hãy đưa ra màn hình xâu S khi đã chuyển thành xâu chứa các kí tự in hoa.

Xem thêm : ...

Vừa rồi, nhạc-chuông.vn đã gửi tới các bạn chi tiết về chủ đề Viết nhập từ bàn phím xâu kí tự S có độ dài không quá 200. Hãy đưa ra màn hình xâu S khi đã chuyển thành xâu chứa các kí tự in hoa. nam 2022 ❤️️, hi vọng với thông tin hữu ích mà bài viết "Viết nhập từ bàn phím xâu kí tự S có độ dài không quá 200. Hãy đưa ra màn hình xâu S khi đã chuyển thành xâu chứa các kí tự in hoa. nam 2022" mang lại sẽ giúp các bạn trẻ quan tâm hơn về Viết nhập từ bàn phím xâu kí tự S có độ dài không quá 200. Hãy đưa ra màn hình xâu S khi đã chuyển thành xâu chứa các kí tự in hoa. nam 2022 [ ❤️️❤️️ ] hiện nay. Hãy cùng nhạc-chuông.vn phát triển thêm nhiều bài viết hay về Viết nhập từ bàn phím xâu kí tự S có độ dài không quá 200. Hãy đưa ra màn hình xâu S khi đã chuyển thành xâu chứa các kí tự in hoa. nam 2022 bạn nhé.

Mot so bai tap ve xau

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (192.26 KB, 20 trang )

MỘT SỐ KIẾN THỨC LÝ THUYẾT
Để xử lý các chuỗi văn bản, Pascal đưa ra một kiểu dữ liệu mới gọi là xâu ký
tự và được định nghĩa bằng từ khóa STRING. Xâu ký tự là dữ liệu bao gồm một dãy
các ký tự trong bảng mã ASSCII. Tuy nhiên độ dài của String tối đa chỉ 255 mà thực
tế thì ta thường gặp xâu có độ dài rất lớn cỡ hàng ngàn, vậy có cách nào để có thể
khắc phục được điều đó, chúng tôi xin trình bày một số nội dung mà chúng tôi đã tìm
hiểu và vận dụng có hiệu quả trong quá trình giảng dạy và bồi dưỡng đội tuyển.
I. CÁCH KHAI BÁO VÀ TRUY XUẤT ĐẾN PHẦN TỬ XÂU
1. Cách khai báo:
Var: STRING[độ dài của xâu];
- Xâu ký tự trong bộ nhớ nó chiếm số byte bằng số ký tự cực đại được khai báo
cộng với byte đầu tiên chứa số ký tự hiện có của xâu. Độ dài tối đa của xâu ký tự là
255.
- Ngoài ra có các kiểu khai báo khác của xâu như:
+ Shortstring: Chính là String
+ longstring: là mảng ký tự có kiểu char. Thông thường kiểu char có
kích thước 16 bit nên mảng có kích thước tối đa 16 bit = 65535 ký tự
+ ansistring (chỉ có trong free pascal mà không có trong turbo pascal) có
kích thước gần 2GB = 230 B nên thường được xem là vô hạn.
2. Cách nhập/xuất:
Cách đọc hay viết kiểu STRING cũng tương tự như các kiểu dữ liệu khác, ta
sử dụng các thủ tục READ, hoặc WRITE.
Ví dụ: Readln(st); Writeln(st);
3. Truy cập từng phần tử của xâu ký tự:
Việc truy cập đến phần tử trong xâu tương tự mảng 1 chiều được thông qua tên
biến kiểu STRING và chỉ số của nó
Ví dụ: St := 'Le Thanh Lam'; write(st[4]);
-> Kết quả: cho ra chữ T.
II. CÁC THAO TÁC TRÊN XÂU KÝ TỰ
1. Phép cộng xâu:
Ví dụ:st1:=’tin’; st2:=’ hoc’; St=st1 + st2;


-> St = ‘tin hoc’
2. Phép so sánh:
Hai xâu ký tự có thể so sánh với nhau bằng các phép so sánh =, >, <…
Nguyên tắc so sánh thực hiện như sau, chúng sẽ đem từng ký tự tương ứng với


nhau để so sánh, xâu nào có ký tự có số thứ tự trong bảng mã ASCII lớn hơn thì xâu
đó lớn hơn.
Hai xâu ký tự được gọi là bằng nhau khi chúng hoàn toàn giống nhau (có độ
dài như nhau).
Ví dụ:st1:=’tin’; st2:=’ hoc’; khi đó st1>st2
3. Các thủ tục và hàm chuẩn xử lý xâu ký tự
a. Hàm length(st): cho độ dài thực của xâu ký tự st
Ví dụ: st:=’tin hoc’ thì LENGTH(st) cho bằng 7.
b. Hàm upcase(ch): Cho ký tự hoa của ký tự ch
Ví dụ: ch:= 'a'; ch:= upcase(ch) → ch = 'A'
Ví dụ: Viết đoạn chương trình nhập vào một xâu ký tự. Đổi xâu đó sang chữ in
hoa rồi in kết quả ra màn hình
var s,s1:string; i:integer;
begin
write('nhap xau s:');
readln(s);
s1:='';
for i:=1 to length(s) do s1:=s1+ upcase(s[i]);
write(s1);
readln;
end.
c. Hàm Ord(ch): Cho mã của ký tự ch trong bảng mã ASCII
Ví dụ: ch:='a'; n:= Ord(ch) → n= 97
d. Hàm Chr(n): Cho ký tự có mã là n


Ví dụ: Viết đoạn chương trình nhập vào một xâu ký tự. Đổi xâu đó sang chữ
thường rồi in xâu đó ra màn hình theo thứ tự ngược lại
* Ý tưởng: Để thực hiện chuyển đổi ký tự ch ở dạng hoa sang dạng thường
trước hết ta sử dụng hàm ord(ch) để lấy mã ký tự đó, sau đó sử dụng hàm chr(ord(ch)
+32) để được ký tự thường của ký tự hoa ch (vì mã của ký tự hoa ch lệch mã ký tự
thường tương ứng là 32 như: ord('A')=65, ord('a')=97)
var s,s1:string; i:integer;
begin
write('nhap xau s:');
readln(s);
s1:='';
for i:=1 to length(s) do
if s[i] in ['A'..'Z'] then s1:=s1+ chr(ord(s[i])+32)


else s1:=s1+s[i];
for i:=length(s1) downto 1 do write(s1[i]);
readln;
end.
e. Thủ tục DELETE(st, pos, num): xóa num ký tự trong xâu st kể từ vị trí pos
Ví dụ: st= ‘tin hoc’; Delete(st,4,4); lúc đó st cho ra là ‘tin’
f. Hàm POS(st1,st2): hàm cho vị trí tìm thấy đầu tiên của xâu s1 trong xâu s2.
Ví dụ: POS(‘tin’,‘tin hoc’) = 1
Ví dụ: Viết đoạn chương trình nhập vào một xâu ký tự. In ra xâu đó sau khi đã
xóa hết ký tự trắng thừa trong xâu (Ký tự trắng thừa là các ký tự đầu xâu, cuối xâu và
nếu giữa xâu có 2 ký tự trắng liên tiếp nhau thì có một ký tự trắng thừa)
* Ý tưởng:
- Sử dụng hàm Pos(' ',s) để biết được vị trí i nào đó xuất hiện ký tự trắng và sử
dụng thủ tục Delete(s,i,1) để xóa ký tự thứ i trong xâu s
- Để xóa ký tự trắng đầu xâu ta thực hiện lệnh:


while s[1]=' ' do delete(s,1,1);
- Để xóa ký tự trắng cuối xâu ta thực hiện lệnh:
while s[length(s)] = ' ' do delete(s,length(s),1);
- Để xóa ký tự trắng giữa xâu ta thực hiện lệnh:
while pos(' ',s)<>0 do delete(s, pos(' ',s),1);
var s:string;
begin
write('nhap xau s:');
readln(s);
while s[1]=' ' do delete(s,1,1);
while s[length(s)]=' ' do delete(s,length(s),1);
while pos(' ',s)<>0 do delete(s,pos(' ',s),1);
write(s);
readln;
end.
g. Thủ tục INSERT(st1, st2, pos): Thủ tục cho kết quả bằng cách chèn xâu ký tự có
tên là st1 vào xâu st2 tại vị trí pos, những ký tự đứng sau pos sẽ được dời về phía sau
của xâu ký tự st2.
Ví dụ: st1:= ‘tin ‘; st2:=’hoc kho’; INSERT(st1,st2,5) → st2=’hoc tin kho’;


Ví dụ: Viết đoạn chương trình nhập vào 3 xâu s1, s2, s (với xâu s1 xuất hiện
một và chỉ đúng 1 lần trong xâu s). Tìm và thay thế xâu s1 thành xâu s2 trong xâu s.
Chẳng hạn: s1 := 'hoc'; s2:= 'bai tap'; s :='hoc tin hoc'; kết quả sau khi thay thế
s1 thành s2 là s = 'bai tap tin hoc'
var s1,s2,s: string; i:byte;
begin
write('nhap s1:');
readln(s1);
write('nhap s2:');


readln(s2);
write('nhap xau s:');
readln(s);
i:= pos(s1,s);
delete(s,i,length(s1));
insert(s2,s,i);
write(s);
readln;
end.
h. Thủ tục STR(value, st): Thủ tục này thực hiện việc chuyển đối giá trị kiểu
số(value) sang dạng xâu ký tự và gán cho biến st.
Ví dụ: n:=2014; STR(n,st) sẽ cho kết quả xâu st là: st=’2014’;
i. Thủ tục VAL(st, value,code) đổi một xâu ký tự st sang dạng số và gán cho biến
value, nếu biến đối thành công thì code sẽ nhận giá trị bằng 0. ngược lại thì cho giá
trị khác không
Ví dụ: VAL(‘2014’,value,code) lúc này code sẽ nhận giá trị bằng 0 và
value=2014
Ví dụ: Viết đoạn chương trình nhập vào số tự nhiên a có n con số. Hãy tạo ra
số mới b từ số a bằng cách in ngược có số xuất hiện trong a. Chẳng hạn số a = 123 thì
b=321
var a,b:Qword; s,s1:string; i,code:longint;
begin
write('nhap a:');
readln(a);
str(a,s);
s1:='';
for i:=length(s) downto 1 do s1:=s1+s[i];


val(s1,b,code);


write(b);
readln;
end.
j. Hàm CONCAT(s1,s2,…,sn): hàm cho ra 1 xâu mới bằng cách nối đuôi các xâu
s1,s2,…,sn lại với nhau.
Ví dụ: CONCAT(‘hoc ’, ‘tin ’) = ‘hoc tin’;
k. Hàm COPY(st, pos, num): sao chép trong xâu st, num ký tự tại vị trí pos,
Ví dụ: st=’tin hoc’; COPY(st,5,3) = ‘hoc’;
Ví dụ: Viết đoạn chương trình nhập vào một xâu S (không có dấu cách vô
nghĩa). Đưa ra từ dài nhất xuất hiện trong xâu S. Chẳng hạn: s = 'xin chao ban' →kết
quả tìm được là từ 'chao'
* Ý tưởng: Dùng hàm pos để xác định ví trí ký tự trống xuất hiện đầu tiên
trong xâu s. Từ đó xác định độ dài của từ đầu tiên trong s. Nếu ta thực hiện xóa đi từ
đầu tiên trong xâu s và lặp lại thao tác trên ta sẽ tìm được từ tiếp theo, đồng thời ta sẽ
tìm được từ có độ dài lớn nhất.
* Chương trình:
var s,tumax:string;
begin
write('nhap xau s:');
readln(s);
while pos(#32,s)<>0 do
begin
if pos(#32,s)>length(tumax) then
tumax:=copy(s,1,pos(#32,s));
delete(s,1,pos(#32,s));
end;
writeln(tumax);
readln;
end.
III. CÁC DẠNG BÀI TẬP THƯỜNG GẶP


1. Dạng 1. Xử lý số nguyên lớn
Phương pháp chung: Để thực hiện các phép tính hoặc xử lý với số nguyên
ngoài phạm vi biểu diễn được cung cấp, cách đơn giản nhất là sử dụng xâu kí tự để
biểu diễn với mỗi ký tự của xâu tương ứng với một chữ số của số nguyên lớn tính từ


trái qua phải. Dưới đây chúng tôi xin đưa ra một số ứng dụng kiểu xâu trong xử lý số
lớn.
Bài 1. Cộng, trừ 2 số nguyên lớn
Cho hai số nguyên dương lớn có có độ dài không quá 200 chữ số. Hãy đưa ra
tổng và hiệu của 2 số nguyên đó.
* Ý tưởng: Sử dụng xâu để lưu 2 số lớn. Trước hết cho 2 xâu bằng nhau bằng
cách chèn thêm nhiều ký tự '0' vào trước xâu ngắn hơn. Việc thực hiện cộng 2 số sẽ
được thực hiện bằng cách cộng lần lượt các cặp ký tự số tương ứng từ phải sang trái
của các xâu (Đối với phép trừ 2 số nguyên thực hiện tương tự)
* Đoạn chương trình:
function Add(s1,s2:string):string;
var i,nho,z,x,y:longint; s:string;
begin
while length(s1)