Trang chủ Tin Học Lớp 8 hình. Bài 3: Viết chương trình nhập vào một xâu...

hình. Bài 3: Viết chương trình nhập vào một xâu ký tự chỉ gồm các ký tự chữ cái, gồm chữ cái thường và một số chữ cái in hoa. - In các ký tự thường ra trên

Câu hỏi :

giúp e 3 câu này code trên c++ v ạ,e cảm ơn

image

hình. Bài 3: Viết chương trình nhập vào một xâu ký tự chỉ gồm các ký tự chữ cái, gồm chữ cái thường và một số chữ cái in hoa. - In các ký tự thường ra trên

Lời giải 1 :

*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

image
image
image
image

Bạn có biết?

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!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 8

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!

Nguồn :

sưu tập

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK