C++ उदाहरण के साथ चार डेटा प्रकार
चार क्या है?
चार एक है C++ अक्षरों के भंडारण के लिए डिज़ाइन किया गया डेटा प्रकार। चार अल्फ़ान्यूमेरिक कैरेक्टर का संक्षिप्त नाम है। यह एक अभिन्न डेटा प्रकार है, जिसका अर्थ है कि मान एक पूर्णांक के रूप में संग्रहीत किया जाता है। एक चार 1 बाइट का मेमोरी आकार लेता है। यह एक एकल वर्ण भी संग्रहीत करता है।
एएससीआईआई क्या है?
चार मान को ASCII वर्ण के रूप में व्याख्यायित किया जाता है। यह उसी तरह है जैसे बूलियन मानों को सत्य या असत्य के रूप में व्याख्यायित किया जाता है। ASCII अमेरिकन स्टैंडर्ड कोड फॉर इन्फॉर्मेशन इंटरचेंज का संक्षिप्त रूप है। यह अंग्रेजी वर्णों को संख्याओं के रूप में प्रस्तुत करने का एक विशिष्ट तरीका परिभाषित करता है।
संख्याएं 0 से 127 के बीच होती हैं। उदाहरण के लिए, वर्ण 'a' ASCII कोड 97 के बराबर है।
चार घोषणा
घोषित करना चर चर में C++, हम char कीवर्ड का उपयोग करते हैं। इसके बाद वेरिएबल का नाम होना चाहिए। घोषणा के समय वेरिएबल को आरंभीकृत किया जा सकता है। वेरिएबल का मान सिंगल कोट्स में संलग्न होना चाहिए।
वाक्य - विन्यास
यहाँ char घोषणा के लिए वाक्यविन्यास है C++:
char variable-name;
variable-name वह नाम है जो variable को निर्दिष्ट किया जाता है।
यदि घोषणा के समय कोई मान निर्दिष्ट करना है, तो आप इस सिंटैक्स का उपयोग कर सकते हैं:
char variable-name = 'value';
- variable-name, char variable का नाम है।
- मान वह मान है जो char चर को निर्दिष्ट किया जाना है।
उदाहरण 1:
#include <iostream> using namespace std; int main() { char grade = 'B'; cout << "I scored a: "<<grade; return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- इसके कार्यों का उपयोग करने के लिए अपने कोड में iostream हेडर फ़ाइल को शामिल करना।
- हमारे कोड में std नामस्थान को शामिल करना ताकि इसे कॉल किए बिना इसके क्लासों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करना। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
- ग्रेड नामक एक कैरेक्टर वैरिएबल घोषित करें। वैरिएबल को B का मान भी दिया गया है। ध्यान दें कि वैरिएबल का मान सिंगल कोट्स में संलग्न है।
- कंसोल पर अन्य पाठ के साथ-साथ ग्रेड चर का मान प्रिंट करें।
- प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
- main() फ़ंक्शन के मुख्य भाग का अंत.
ASCII मान प्रिंट करना
जैसा कि ऊपर बताया गया है, प्रत्येक वर्ण को ASCII वर्ण के रूप में व्याख्यायित किया जाता है। आपके लिए किसी भी वर्ण का ASCII मान प्राप्त करना संभव है। आप बस वर्ण को int() फ़ंक्शन में पास करते हैं। इस प्रक्रिया को टाइप कास्टिंग कहा जाता है। आइए इसे प्रदर्शित करें:
उदाहरण 2:
#include <iostream> using namespace std; int main() { char ch; cout << "Enter any character: "; cin >> ch; cout << "The ASCII Value of " << ch << " is " << int(ch); return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- इसके कार्यों का उपयोग करने के लिए iostream हेडर फ़ाइल को हमारे कोड में शामिल करना।
- हमारे कोड में std नामस्थान को शामिल करना ताकि इसे कॉल किए बिना इसके क्लासों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करना। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
- ch नामक एक char चर घोषित करें.
- कंसोल पर कुछ टेक्स्ट प्रिंट करें। टेक्स्ट उपयोगकर्ता को चर ch के लिए मान दर्ज करने के लिए कहता है।
- कीबोर्ड से उपयोगकर्ता इनपुट पढ़ें और उसे वेरिएबल ch में संग्रहीत करें।
- कंसोल पर कुछ टेक्स्ट प्रिंट करें। टेक्स्ट में आपके द्वारा चर ch के लिए दर्ज किया गया वर्ण, इस वर्ण का ASCII मान और अन्य टेक्स्ट शामिल होगा।
- प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
- main() फ़ंक्शन के मुख्य भाग का अंत.
वर्ण मान मुद्रण
एक ASCII मान दिया गया है, C++ कंपाइलर संबंधित वर्ण लौटा सकता है। आप एक char variable घोषित करते हैं और उसे एक पूर्णांक मान असाइन करते हैं। इसे संबंधित वर्ण मान में परिवर्तित कर दिया जाएगा।
उदाहरण 3:
#include <iostream> using namespace std; int main() { char x = 64, y = 66, z = 71; cout << x; cout << y; cout << z; return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- कोड में iostream हेडर फ़ाइल शामिल करें। फिर हम बिना किसी त्रुटि के इसके फ़ंक्शन का उपयोग करेंगे।
- कोड में std नामस्थान शामिल करें। हम इसे कॉल किए बिना इसके क्लास का उपयोग करेंगे।
- main() फ़ंक्शन को कॉल करना। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जाना चाहिए।
- तीन वर्ण चर x, y, और z घोषित करें। तीनों को 65, 66, और 67 के पूर्णांक मान दिए गए हैं। इन्हें वर्णों के लिए ASCII मान के रूप में माना जाएगा।
- कंसोल पर वेरिएबल x का मान प्रिंट करें। चूँकि x को एक char के रूप में घोषित किया गया था, इसलिए ASCII मान 65 वाला char लौटाया जाएगा, अर्थात A.
- कंसोल पर वेरिएबल y का मान प्रिंट करें। चूँकि y को एक char के रूप में घोषित किया गया था, इसलिए ASCII मान 66 वाला char लौटाया जाएगा, अर्थात B.
- कंसोल पर वेरिएबल z का मान प्रिंट करें। चूँकि z को char के रूप में घोषित किया गया था, इसलिए ASCII मान 67 वाला char लौटाया जाएगा, अर्थात C.
- प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
- main() फ़ंक्शन के मुख्य भाग का अंत.
वर्ण इनपुट करना
हम कीबोर्ड के माध्यम से उपयोगकर्ता द्वारा दर्ज किए गए वर्ण को पढ़ने के लिए std::cin फ़ंक्शन का उपयोग कर सकते हैं। std::cin आपको कई वर्ण दर्ज करने की अनुमति देगा। हालाँकि, कैरेक्टर वैरिएबल केवल एक वर्ण रख सकता है। इसका मतलब है कि केवल दर्ज किया गया पहला वर्ण ही निकाला जाएगा और कैरेक्टर वैरिएबल में संग्रहीत किया जाएगा। बाकी std::cin द्वारा उपयोग किए जाने वाले बफर में रहेगा। इसे निकालने के लिए, std::cin को बाद में कॉल करें।
उदाहरण 4:
#include <iostream> using namespace std; int main() { cout << "Type a sequence of characters: "; char ch; cin >> ch; cout <<"The ASCII code of "<< ch << " is "<< int(ch) << '\n'; cin >> ch; cout <<"The ASCII code of " << ch << " is "<< int(ch) << '\n'; return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- इसके कार्यों का उपयोग करने के लिए अपने कोड में iostream हेडर फ़ाइल को शामिल करना।
- अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करना। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
- कंसोल पर कुछ पाठ प्रिंट करें.
- ch नामक एक वर्ण चर घोषित करें.
- कीबोर्ड से उपयोगकर्ता इनपुट पढ़ें। इनपुट को चर ch में संग्रहीत किया जाएगा। चूंकि उपयोगकर्ता abc जैसे वर्ण अनुक्रम टाइप करेगा, इसलिए केवल पहला वर्ण, a, चर ch में संग्रहीत किया जाएगा।
- कंसोल पर दर्ज किया गया पहला अक्षर, उसका ASCII कोड और अन्य टेक्स्ट प्रिंट करना। ASCII कोड को int() फ़ंक्शन में कैरेक्टर वैरिएबल पास करके निर्धारित किया जाता है।
- उपयोगकर्ता द्वारा दर्ज किया गया अगला अक्षर पढ़ें। उपयोगकर्ता को नया अक्षर दर्ज करने की आवश्यकता नहीं होगी। इसके बजाय यह दर्ज किया गया दूसरा अक्षर पढ़ेगा, यानी b.
- दर्ज किए गए दूसरे अक्षर, उसके ASCII कोड और कंसोल पर अन्य टेक्स्ट को प्रिंट करना। ASCII कोड को int() फ़ंक्शन में कैरेक्टर वैरिएबल पास करके निर्धारित किया जाता है।
- प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
- main() फ़ंक्शन के मुख्य भाग का अंत.
वर्ण को स्ट्रिंग में परिवर्तित करना
ऐसे कई तरीके मौजूद हैं जिनका उपयोग हम वर्णों को परिवर्तित करने के लिए कर सकते हैं तार.
आइए उन पर चर्चा करें:
#1: स्ट्रिंग क्लास द्वारा दिए गए कंस्ट्रक्टर का उपयोग करना
यह निम्नलिखित सिंटैक्स का उपयोग करके किया जा सकता है:
string st(int n,char x);
पैरामीटर n उस स्ट्रिंग के आकार को दर्शाता है जिसे उत्पन्न किया जाना है।
पैरामीटर x वह वर्ण है जिसे स्ट्रिंग में परिवर्तित किया जाना है।
फ़ंक्शन एक स्ट्रिंग लौटाता है.
उदाहरण 5:
#include<iostream> #include <string> using namespace std; int main() { string st(1, 'C'); cout << "The resulting string is : " << st; return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- इसके कार्यों का उपयोग करने के लिए अपने कोड में iostream हेडर फ़ाइल को शामिल करना।
- इसके फ़ंक्शन का उपयोग करने के लिए स्ट्रिंग हेडर फ़ाइल को हमारे कोड में शामिल करें।
- अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करना। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
- वर्ण “C” को 1-लंबाई वाली स्ट्रिंग में परिवर्तित करें और परिणामी स्ट्रिंग को वेरिएबल st पर असाइन करें।
- कंसोल पर अन्य टेक्स्ट के साथ स्ट्रिंग st का मान प्रिंट करें।
- प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
- main() फ़ंक्शन के मुख्य भाग का अंत.
#2) std::string का उपयोग करना Operaटोर = और +=
= और += ऑपरेटर पहले से ही वर्णों से भरे हुए हैं। इन दोनों का उपयोग किसी विशेष वर्ण को स्ट्रिंग में बदलने के लिए किया जा सकता है।
उदाहरण 6:
#include<iostream> #include <string> using namespace std; int main() { string st; char b = 'B'; st = 'A'; st += b; cout << "The resulting string is : " << st; return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- इसके फ़ंक्शन का उपयोग करने के लिए अपने कोड में iostream हेडर फ़ाइल शामिल करें।
- इसके फ़ंक्शन का उपयोग करने के लिए स्ट्रिंग हेडर फ़ाइल को हमारे कोड में शामिल करें।
- अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करना। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
- st नामक एक स्ट्रिंग वेरिएबल बनाएं.
- B मान वाला b नामक एक वर्ण बनाएँ।
- st नामक स्ट्रिंग को A का मान निर्दिष्ट करें.
- वर्णों को स्ट्रिंग में बदलने के लिए += ऑपरेटर का उपयोग करें।
- कंसोल पर अन्य टेक्स्ट के साथ स्ट्रिंग st का मान प्रिंट करें।
- प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
- main() फ़ंक्शन के मुख्य भाग का अंत.
#3: std::string विधियों का उपयोग करना
std::string क्लास कई ओवरलोडेड फंक्शन्स के साथ आता है जो आपको वर्णों को स्ट्रिंग्स में बदलने में मदद कर सकते हैं।
वे शामिल हैं:
- वापस धक्का देना यह फ़ंक्शन स्ट्रिंग के अंत में एक विशेष वर्ण निर्दिष्ट करता है। यह वर्णों के लिए ओवरलोडेड है। यह निम्नलिखित सिंटैक्स लेता है:
void push_back(char ch)
पैरामीटर ch वह वर्ण है जिसे स्ट्रिंग में बदलना है।
- जोड़ना यह किसी विशेष वर्ण की कई प्रतियाँ एक स्ट्रिंग को प्रदान करता है। फ़ंक्शन निम्नलिखित सिंटैक्स लेता है:
string& append(size_t n,char ch)
पैरामीटर n उस समय को दर्शाता है जब वर्ण जोड़ा जाएगा।
पैरामीटर ch स्ट्रिंग में जोड़ने के लिए वर्ण है।
- आवंटित यह फ़ंक्शन स्ट्रिंग की वर्तमान सामग्री को निर्दिष्ट वर्ण की n प्रतियों से प्रतिस्थापित करता है। यह निम्नलिखित सिंटैक्स लेता है:
string& assign(size_t n,char ch);
पैरामीटर n वर्ण की कुल प्रतियों को दर्शाता है।
पैरामीटर ch वह वर्ण है जिसे स्ट्रिंग में कॉपी करना है।
- डालने के इन्सर्ट फ़ंक्शन स्ट्रिंग की शुरुआती स्थिति में किसी वर्ण की n प्रतियाँ सम्मिलित करता है, जैसा कि तर्कों में निर्दिष्ट किया गया है। यह निम्नलिखित सिंटैक्स लेता है:
string& insert(size_t p,size_t n,char ch);
p पैरामीटर प्रारंभ से उस स्थान को दर्शाता है जहां अक्षर डाले जाएंगे।
पैरामीटर n वर्ण की कुल प्रतियों को दर्शाता है।
पैरामीटर ch वह वर्ण है जिसे स्ट्रिंग में सम्मिलित किया जाना है।
उदाहरण 7:
#include<iostream> #include <string> using namespace std; int main() { string st; st.push_back('A'); cout << "push_back A returns : " << st << endl; st = ""; st.append(1, 'C'); cout << "append C returns : " << st << endl; st = ""; st.assign(1, 'D'); cout << "assign D returns : " << st << endl; st.insert(0, 1, 'E'); cout << "insert single character returns : " << st << endl; return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
- इसके फ़ंक्शन का उपयोग करने के लिए अपने कोड में iostream हेडर फ़ाइल शामिल करें।
- इसके फ़ंक्शन का उपयोग करने के लिए स्ट्रिंग हेडर फ़ाइल को हमारे कोड में शामिल करें।
- अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करना। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
- st नामक एक स्ट्रिंग वेरिएबल बनाएं.
- स्ट्रिंग के अंत में A अक्षर निर्दिष्ट करें.
- कंसोल पर अन्य टेक्स्ट के साथ स्ट्रिंग st का मान प्रिंट करें। endl (अंतिम पंक्ति) कर्सर को अगली पंक्ति पर ले जाता है।
- स्ट्रिंग st का मान रिक्त पर सेट करें.
- st नामक स्ट्रिंग को एकल वर्ण C निर्दिष्ट करें।
- कंसोल पर अन्य टेक्स्ट के साथ स्ट्रिंग st का मान प्रिंट करें। endl (अंतिम पंक्ति) कर्सर को अगली पंक्ति पर ले जाता है।
- स्ट्रिंग st का मान रिक्त पर सेट करें.
- स्ट्रिंग st की सामग्री को एकल वर्ण D से प्रतिस्थापित करें।
- कंसोल पर अन्य टेक्स्ट के साथ स्ट्रिंग st का मान प्रिंट करें। endl (अंतिम पंक्ति) कर्सर को अगली पंक्ति पर ले जाता है।
- st नामक स्ट्रिंग में उसके प्रथम इंडेक्स से एकल वर्ण E प्रविष्ट करें।
- कंसोल पर अन्य टेक्स्ट के साथ स्ट्रिंग st का मान प्रिंट करें। endl (अंतिम पंक्ति) कर्सर को अगली पंक्ति पर ले जाता है।
- प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
- main() फ़ंक्शन के मुख्य भाग का अंत.
#4: std::stringstream का उपयोग करना
इस वर्ग का उपयोग कर वर्ण को स्ट्रिंग में परिवर्तित करने के लिए, वर्ण को स्ट्रीम में डालें।
वे स्ट्रिंग में लिखे जायेंगे.
उदाहरण 8:
#include<iostream> #include <string> #include <sstream> using namespace std; int main() { string st; stringstream myst; myst << 'A'; myst >> st; cout << "The conversion of the single character returns the string: " << st; return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- इसके फ़ंक्शन का उपयोग करने के लिए अपने कोड में iostream हेडर फ़ाइल शामिल करें।
- इसके फ़ंक्शन का उपयोग करने के लिए स्ट्रिंग हेडर फ़ाइल को हमारे कोड में शामिल करें।
- इसके फ़ंक्शन का उपयोग करने के लिए हमारे कोड में sstream हेडर फ़ाइल शामिल करें।
- अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करना। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
- st नामक एक स्ट्रिंग वेरिएबल बनाएं.
- myst नामक एक स्ट्रीम वेरिएबल बनाएं.
- myst नामक स्ट्रीम ऑब्जेक्ट में वर्ण A प्रविष्ट करें।
- स्ट्रीम ऑब्जेक्ट को स्ट्रिंग में परिवर्तित करें.
- कंसोल पर अन्य टेक्स्ट के साथ स्ट्रिंग st का मान प्रिंट करें। endl (अंतिम पंक्ति) कर्सर को अगली पंक्ति पर ले जाता है।
- प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
- main() फ़ंक्शन के मुख्य भाग का अंत.
सारांश
- एक चार एक है C++ पत्रों के भंडारण के लिए प्रयुक्त डेटा प्रकार।
- C++ चार एक अभिन्न डेटा प्रकार है, जिसका अर्थ है कि मान एक पूर्णांक के रूप में संग्रहीत किया जाता है।
- यह 1 बाइट का मेमोरी आकार घेरता है।
- C++ Char केवल एकल अक्षर संग्रहीत करता है.
- वर्ण मानों की व्याख्या ASCII वर्णों के रूप में की जाती है।
- ASCII, अमेरिकन स्टैण्डर्ड कोड फॉर इन्फॉर्मेशन इंटरचेंज का संक्षिप्त रूप है।
- यह अंग्रेजी अक्षरों को संख्याओं के रूप में प्रस्तुत करने का एक विशिष्ट तरीका बताता है।
- किसी वर्ण का ASCII मान देखने के लिए, हम उसे int() फ़ंक्शन में पास करते हैं।
- ASCII मान के संगत char मान को देखने के लिए, हम ASCII को एक वर्ण के रूप में परिभाषित करते हैं।