हमें किसी भी लंबाई की एक स्ट्रिंग दी गई है और कार्य स्ट्रिंग में उन वर्णों की गिनती करना और प्रिंट करना है जिनका 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 आउटपुट - दिए गए रेंज में नहीं आने वाले वर्ण हैं: i, n गिनती: 2
व्याख्या - चूंकि i और n [111, 117] की रेंज में नहीं आते हैं, इसलिए इन वर्णों को गिना जाएगा।
इनपुट - String str = "ABCZXY" First = 65, Last = 70 आउटपुट - दिए गए रेंज में नहीं आने वाले वर्ण हैं: Z, X, Y गिनती: 3
व्याख्या - चूंकि Z, X और Y [65, 70] की रेंज में नहीं आते हैं, इसलिए इन वर्णों को गिना जाएगा।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
स्ट्रिंग, प्रारंभ और अंत मान इनपुट करें ताकि रेंज बनाई जा सके और इसे str जैसे चरों में संग्रहीत करें।
length() फंक्शन का उपयोग करके स्ट्रिंग की लंबाई की गणना करें जो स्ट्रिंग में स्पेस सहित अक्षरों की संख्या के अनुसार एक पूर्णांक मान लौटाएगा।
एक अस्थायी चर लें जो वर्णों की गिनती को संग्रहीत करेगा और एक मैप बनाएं, मान लीजिए mp
लूप को i से 0 से शुरू करके i के स्ट्रिंग की लंबाई से कम होने तक शुरू करें
लूप के अंदर, जांचें कि क्या start, str[i] के बराबर नहीं है और str[i] end के बराबर नहीं है
if के अंदर, जांचें कि क्या mp[str[i]] ! = 1 है तो str[i] प्रिंट करें अन्यथा mp[str[i]] को 1 से बढ़ाएं
count लौटाएं
परिणाम प्रिंट करें
उदाहरण
#include <iostream>
#include <unordered_map>
using namespace std;
// रेंज [l, r] में नहीं आने वाले ASCII मान वाले वर्णों की संख्या गिनने के लिए
int count_non_char(string str, int left, int right) {
int count = 0;
// एक वर्ण को केवल एक बार प्रिंट करने के लिए मैप का उपयोग
unordered_map<char, int> m;
int len = str.length();
for (int i = 0; i < len; i++) {
if (!(left <= str[i] and str[i] <= right)) {
count++;
if (m[str[i]] != 1) {
cout << str[i] << " ";
m[str[i]]++;
}
}
}
// गिनती लौटाएं
return count;
}
// मुख्य कोड
int main() {
string str = "tutorialspoint";
int left = 102, right = 111;
cout << "Characters and ";
cout << "\nand count in the given range is: " << count_non_char(str, left, right);
return 0;
}
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
Characters and and count in the given range is: t u r a s p 8