Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Đếm và in ký tự ASCII nằm trong khoảng [l, r] trong C++

Cho một chuỗi và khoảng giá trị ASCII [l, r], nhiệm vụ là đếm và in ra các ký tự trong chuỗi có mã ASCII nằm trong khoảng này.

Bảng mã ASCII tham khảo

A-Z: 65-90 | a-z: 97-122

Ví dụ

Input - str = "point", First = 111, Last = 117 Output - characters in range: p, o, t, Count: 3

Giải thích - 'p'(112), 'o'(111), 't'(116) nằm trong [111, 117].

Input - str = "ABCZXY", First = 65, Last = 70 Output - characters in range: A, B, C, Count: 3

Phương pháp tiếp cận

  • Duyệt qua từng ký tự trong chuỗi
  • Kiểm tra mã ASCII (int)str[i] có nằm trong [left, right] không
  • In ký tự và tăng biến đếm nếu thỏa mãn
  • Trả về tổng count

Ví dụ code C++

#include <iostream>
#include <string>
using namespace std;

int count_char(string str, int left, int right) {
    int count = 0;
    int len = str.length();

    for (int i = 0; i < len; i++) {
        if (left <= str[i] && str[i] <= right) {
            count++;
            cout << str[i] << " ";
        }
    }
    return count;
}

int main() {
    string str = "tutorialspoint";
    int left = 102, right = 111;
    cout << "Characters in range: ";
    cout << "\nCount: " << count_char(str, left, right);
    return 0;
}

Kết quả

Characters in range: o i l o i n
Count: 6