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

Đếm số từ có tổng giá trị ASCII nhỏ hơn và lớn hơn k trong C ++

Chúng ta được cung cấp một chuỗi str với một câu và một số k. Mục đích là tìm số lượng trong str có giá trị ascii nhỏ hơn k và các từ có giá trị ascii lớn hơn k.

ASCII - Mã duy nhất là số được gán cho mỗi ký tự trong một ngôn ngữ.

Hãy cho chúng tôi hiểu với các ví dụ.

Đầu vào - str ="Đây là ASCII". k =300

Đầu ra - Đếm số từ có tổng giá trị ASCII nhỏ hơn k là - 1

Đếm số từ có tổng giá trị ASCII lớn hơn k là - 2

Giải thích - từ “is” có ascii ít hơn 300 từ khác.

Đầu vào - str =“set set set set”. k =300

Đầu ra - Đếm số từ có tổng giá trị ASCII nhỏ hơn k là - 0

Đếm số từ có tổng giá trị ASCII lớn hơn k là - 3

Giải thích - Tất cả các từ đều giống nhau và có ascii hơn 300.

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

Chúng ta sẽ duyệt qua chuỗi str bằng vòng lặp for. Đối với mỗi từ sau dấu cách, bắt đầu thêm str [i] vào tổng số. Nếu đây là> k. Số lượng tăng dần.

  • Lấy chuỗi là str và số nguyên là k.

  • Hàm words_less_greater (string str, int k, int length) nhận chuỗi và trả về số lượng các từ có ascii nhỏ hơn và lớn hơn k.

  • Lấy tạm thời là 0 cho ascii của mỗi từ trong str.

  • Lấy đếm là 0 cho số từ có ASCII nhỏ hơn k.

  • Lấy tổng số là 0 cho tổng số từ trong k.

  • Traverse str bằng vòng lặp for.

  • Với mỗi từ sau dấu cách str [i] ==‘‘. Thêm các ký tự str [i] vào tạm thời. Sau khi kết thúc từ, kiểm tra xem temp

  • Nếu không chỉ tăng tổng cộng.

  • Cuối cùng, số đếm có một số từ có ASCII nhỏ hơn k. tổng số - số lượng sẽ là các từ có ascii nhiều hơn k.

  • In kết quả.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
void words_less_greater(string str, int k, int length){
   int temp = 0;
   int total = 0;
   int count = 0;
   for (int i = 0; i < length; ++i){
      if (str[i] == ' '){
         if (temp < k){
            count++;
         }
         temp = 0;
         total++;
      }
      else{
         temp += str[i];
      }
   }
   total++;
   if (temp < k){
      count++;
   }
   cout<<"Count of number of words having sum of ASCII values less than k are: "<< count;
   cout<<"\nCount of number of words having sum of ASCII values greater than k are: "<< total -
   count;
}
int main(){
   string str = "tutorials point";
   int k = 900;
   int length = str.length();
   words_less_greater(str, k, length);
   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 -

Count of number of words having sum of ASCII values less than k are: 1
Count of number of words having sum of ASCII values greater than k are: 1