Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm và in các bảng chữ cái có giá trị ASCII trong phạm vi [l, r] trong C ++

Chúng ta được cung cấp một chuỗi có độ dài bất kỳ và nhiệm vụ là tính số lượng và in các bảng chữ cái trong một chuỗi có giá trị ASCII trong phạm vi [l, r]

Giá trị ASCII cho ký tự A-Z được đưa ra bên dưới

A B C D E F G H Tôi J K L M N O P Hỏi R S
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83


T Ư V W X Y Z
84 85 86 87 88 89 90

Giá trị ASCII cho các ký tự a-z được đưa ra bên dưới -

a b c d e f g h i j k l m n o p q r s
9
7
9
số 8
9
9
10
0
10
1
10
2
10
3
10
4
10
5
10
6
10
7
10
số 8
10
9
11
0
11
1
11
2
11
3
11
4
11
5


t u v w x y z
116 117 118 119 120 121 122

Ví dụ

Input − String str = “point
      First = 111, Last = 117
Output − characters in the given range are: p, o , t
      Count is: 3

Giải thích - vì p, o và t nằm trong khoảng [111, 117] nên các ký tự này sẽ được tính.

Input − String str = “ABCZXY
      First = 65, Last = 70
Output − characters in the given range are: A, B, C
      Count is: 3

Giải thích - vì A, B và C nằm trong khoảng [65, 70] các ký tự này sẽ được tính.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Nhập chuỗi, giá trị bắt đầu và giá trị kết thúc để tạo phạm vi và lưu trữ nó trong các biến, giả sử là str.

  • Tính độ dài của chuỗi bằng cách sử dụng hàm length () sẽ trả về một giá trị nguyên theo số chữ cái trong chuỗi bao gồm cả khoảng trắng.

  • Lấy một biến tạm thời sẽ lưu trữ số lượng ký tự

  • Bắt đầu vòng lặp từ i đến 0 cho đến khi tôi nhỏ hơn độ dài của chuỗi

  • Bên trong vòng lặp, hãy kiểm tra xem bắt đầu có nhỏ hơn bằng str [i] và str [i] nhỏ hơn bằng với kết thúc hay không

  • Bây giờ, hãy tăng số lượng lên 1 nếu điều kiện giữ đúng và in str [i]

  • Trả lại số lượng

  • In kết quả

Ví dụ

#include <iostream>
using namespace std;
// Function to count the number of
// characters whose ascii value is in range [l, r]
int count_char(string str, int left, int right){
   // Initializing the count to 0
   int count = 0;
   int len = str.length();
   for (int i = 0; i < len; i++) {
      // Increment the count
      // if the value is less
      if (left <= str[i] and str[i] <= right) {
         count++;
         cout << str[i] << " ";
      }
   }
   // return the count
   return count;
}
int main(){
   string str = "tutorialspoint";
   int left = 102, right = 111;
   cout << "Characters in the given range";
   cout << "\nand their count is " << count_char(str, left, right);
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Characters in the given range
and their count is o i l o i n 6