giúp e 3 câu này code trên c++ v ạ,e cảm ơn
*Câu 3 :
#include <bits/stdc++.h>
using namespace std;
int main(){
string s; cin >> s;
for (int i=0;i<s.size();i++)
if ((int(s[i]) >= 97) && (int(s[i]) <= 122 )) cout << s[i] << " ";
cout << endl;
for (int i=0;i<s.size();i++)
if ((int(s[i]) >= 65) && (int(s[i]) <= 90 )) cout << s[i] << " ";
for (int i=0;i<s.size();i++)
if ((int(s[i]) >= 97) && (int(s[i]) <= 122 ))
s[i] = char(int(s[i])-32);
cout << endl << s;
return 0;
}
- Hàm int(c) (với c là ký tự) : trả về vị trí ký tự của c trong bảng Ascii
- Hàm char(n) (với n là số nguyên) : trả về ký tự thuộc vị trí n trong bảng Ascii
- Như ảnh 1 mình lấy nguồn trên Internet, thì nhận thấy :
+ Những chữ cái thường : bắt đầu từ vị trí 97 → 122
+ Những chữ cái in hoa : bắt đầu từ vị trí 65 → 90
⇒ Vậy chữ cái in thường có vị trí nằm trong đoạn `[97;122]` → (c≥97 và c≤122)
⇒ Vậy chữ cái in hoa có vị trí nằm trong đoạn `[65;90]` → (c≥65 và c≤90)
- Nhận xét, chữ cái đầu tiên ở những ký tự thường là 97, in hoa là 65
⇒ Khoảng cách của các ký tự thường - hoa tương đương là 32 vị trí
⇒ Vậy, để chuyển ký tự c in thường thành in hoa, ta đầu tiên ép về vị trí của c, sau đó trừ đi 32 và dùng char để ép lại thành ký tự
*Câu 4 :
#include <bits/stdc++.h>
using namespace std;
int main(){
string s; cin >> s;
for (int i=0;i<s.size();i++)
if ((int(s[i]) >= 65) && (int(s[i]) <= 90 ))
s[i] = char(int(s[i])+32);
cout << s << endl;
for (int i=0;i<s.size();i++)
if ((int(s[i]) >= 99) && (int(s[i]) <= 121 ))
cout << s[i];
return 0;
}
- Câu 4 ý 1 tương tự câu 3, chịu khó suy luận nhé
- Ở ý 2, ta nhận thấy in ra các ký tự nằm trong đoạn `[c;y]`, ta nhìn vào bảng Ascii, thấy `c=99,y=121`
⇒ Vậy ta chỉ cần xét xem nếu vị trí Ascii thuộc đoạn `[99;121]` thì in ra s[i]
*Câu 5 :
#include <bits/stdc++.h>
using namespace std;
int main(){
string s; cin >> s;
string new_s = "";
for (int i=5;i<s.size();i++)
new_s += s[i];
cout << new_s << endl ;
for (int i=0;i<s.size();i++)
if ((int(new_s[i]) >= 48) && (int(new_s[i]) <= 57 ))
cout << new_s[i];
return 0;
}
- Không cần kiểm tra phần nhập
- Ở ý đầu, ta cho 1 vòng for chạy từ 5 → độ dài xâu và cộng vào chuỗi mới, in ra (hoặc bạn đã biết cách dồn ký tự thì tuỳ bạn nhé)
- Ở ý 2, ta vẫn nhìn vào bảng Ascii, nhận thấy ký tự 0 đến 9 nằm trong đoạn `[48;57]` và ta chỉ cần xét vị trí Ascii ký tự s[i] có nằm trong đoạn đó hay không
Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!
Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần và sang năm lại là năm cuối cấp, áp lực lớn dần. Hãy chú ý đến sức khỏe, cân bằng giữa học và nghỉ ngơi để đạt hiệu quả tốt nhất!
Copyright © 2021 HOCTAPSGK