हमें किसी भी लंबाई की एक स्ट्रिंग दी गई है और कार्य स्ट्रिंग में उन वर्णों की गिनती करना और प्रिंट करना है जिनका ASCII मान रेंज [l,r] में है।
A-Z वर्णों के ASCII मान नीचे दिए गए हैं
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 |
| T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|
| 84 | 85 | 86 | 87 | 88 | 89 | 90 |
a-z वर्णों के ASCII मान नीचे दिए गए हैं -
| a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 |
| t | u | v | w | x | y | z |
|---|---|---|---|---|---|---|
| 116 | 117 | 118 | 119 | 120 | 121 | 122 |
उदाहरण के लिए
इनपुट - String str = "point" First = 111, Last = 117 आउटपुट - दिए गए रेंज में आने वाले वर्ण हैं: p, o, t गिनती: 3
व्याख्या - चूंकि p, o और t [111, 117] की रेंज में आते हैं, इसलिए इन वर्णों को गिना जाएगा।
इनपुट - String str = "ABCZXY" First = 65, Last = 70 आउटपुट - दिए गए रेंज में आने वाले वर्ण हैं: A, B, C गिनती: 3
व्याख्या - चूंकि A, B और C [65, 70] की रेंज में आते हैं, इसलिए इन वर्णों को गिना जाएगा।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
स्ट्रिंग, प्रारंभ और अंत मान इनपुट करें ताकि रेंज बनाई जा सके और इसे str जैसे चरों में संग्रहीत करें।
length() फंक्शन का उपयोग करके स्ट्रिंग की लंबाई की गणना करें जो स्ट्रिंग में स्पेस सहित अक्षरों की संख्या के अनुसार एक पूर्णांक मान लौटाएगा।
एक अस्थायी चर लें जो वर्णों की गिनती को संग्रहीत करेगा
लूप को i से 0 से शुरू करके i के स्ट्रिंग की लंबाई से कम होने तक शुरू करें
लूप के अंदर, जांचें कि क्या start, str[i] के बराबर या उससे कम है और str[i] end के बराबर या उससे कम है
अब, यदि शर्त सही है तो count को 1 से बढ़ाएं और str[i] प्रिंट करें
count लौटाएं
परिणाम प्रिंट करें
उदाहरण
#include <iostream>
using namespace std;
// रेंज [l, r] में ASCII मान वाले वर्णों की संख्या गिनने के लिए फंक्शन
int count_char(string str, int left, int right) {
// गिनती को 0 से आरंभ करना
int count = 0;
int len = str.length();
for (int i = 0; i < len; i++) {
// गिनती बढ़ाएं
// यदि मान कम है
if (left <= str[i] and str[i] <= right) {
count++;
cout << str[i] << " ";
}
}
// गिनती लौटाएं
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;
}
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
Characters in the given range and their count is o i l o i n 6