C ++ स्ट्रिंग्स: strcpy (), strcat (), strlen (), strcmp () परीक्षा

विषय - सूची:

Anonim

एक स्ट्रिंग क्या है?

एक स्ट्रिंग पात्रों का एक क्रम है। C ++ स्ट्रिंग std :: string class का एक ऑब्जेक्ट है। वर्णों को बाइट्स के अनुक्रमों को एक एकल वर्ण बाइट की अनुमति के साथ संग्रहीत किया जाता है।

C ++ स्ट्रिंग्स को गतिशील रूप से मेमोरी आवंटित करते हैं। जरूरत पड़ने पर रन टाइम के दौरान ज्यादा मेमोरी स्ट्रिंग को आवंटित की जा सकती है। चूंकि कोई मेमोरी प्री-एलोकेशन नहीं है, इसलिए मेमोरी का कोई अपव्यय नहीं है। हम स्ट्रिंग्स पर विभिन्न ऑपरेशन कर सकते हैं, जिसमें तुलना, संगति, रूपांतरण, आदि शामिल हैं।

इस C ++ ट्यूटोरियल में, आप सीखेंगे:

  • एक स्ट्रिंग क्या है?
  • घोषणा की स्ट्रिंग्स
    • सी-स्टाइल कैरेक्टर स्ट्रिंग
    • एसटीडी :: स्ट्रिंग
  • स्ट्रिंग मान तक पहुँचना
  • स्ट्रिंग कार्य:
    • अकड़नेवाला ()
    • स्ट्रैकट ()
    • स्ट्रलेन ()
    • स्ट्रैम्प ()
    • उदाहरण:

घोषणा की स्ट्रिंग्स

C ++ दो प्रकार की स्ट्रिंग घोषणाओं का समर्थन करता है:

  • सी-स्टाइल कैरेक्टर स्ट्रिंग
  • स्ट्रिंग प्रकार

सी-स्टाइल कैरेक्टर स्ट्रिंग

इस प्रकार की स्ट्रिंग घोषणा सी प्रोग्रामिंग भाषा में पेश की गई थी। C ++ इसका समर्थन करना जारी रखता है। यह बस एक चरित्र का एक आयामी सरणी है जो एक अशक्त चरित्र के साथ समाप्त होता है (\ 0)। एक नल-समाप्त स्ट्रिंग में वर्ण होते हैं जो स्ट्रिंग को बनाते हैं और फिर एक अशक्त होते हैं।

नीचे दिए गए स्ट्रिंग घोषणा पर विचार करें:

char name[5] = {'J', 'o', 'h', 'n', '\0'};

उपरोक्त घोषणा जॉन को शब्द बनाने वाली एक स्ट्रिंग बनाती है। शब्द में 4 वर्ण हैं, लेकिन स्ट्रिंग का आकार 5 है। अतिरिक्त स्थान अशक्त वर्ण को धारण करने की अनुमति देता है।

सरणी आरंभीकरण नियम का उपयोग करते हुए, हम उपरोक्त कथन को निम्नानुसार लिख सकते हैं:

char name[] = "John";

ध्यान दें कि आपको स्ट्रिंग वर्ण के अंत में अशक्त वर्ण रखने की आवश्यकता नहीं है। सरणी को प्रारंभ करते समय C ++ कंपाइलर स्वचालित रूप से स्ट्रिंग के अंत में '\ 0' को रखेगा।

एसटीडी :: स्ट्रिंग

मानक C ++ पुस्तकालय स्ट्रिंग कक्षा प्रदान करता है जो विभिन्न स्ट्रिंग संचालन का समर्थन करता है। इसे std :: string के रूप में लिखा जाता है।

इस वर्ग का उपयोग करने के लिए, हमें सबसे पहले इसे अपने कार्यक्षेत्र में शामिल करना चाहिए, जैसा कि नीचे दिखाया गया है

#include

अगला, हम स्ट्रिंग कीवर्ड का उपयोग करके अपनी स्ट्रिंग घोषित कर सकते हैं। उदाहरण के लिए:

string name = "John";

उपरोक्त कथन जॉन को पकड़ने के लिए एक स्ट्रिंग नाम का नाम बनाएगा।

स्ट्रिंग मान तक पहुँचना

C ++ में, हम स्ट्रिंग नाम का उपयोग करके स्ट्रिंग मानों तक पहुंच सकते हैं। उदाहरण के लिए:

#include using namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}

आउटपुट:

यहाँ कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. हमारे कोड में iostream हेडर फ़ाइल शामिल है। यह हमें कंसोल से पढ़ने और लिखने की अनुमति देगा।
  2. जिसमें स्टैड नेमस्पेस भी शामिल है ताकि बिना बुलाए अपनी कक्षाओं और कार्यों का उपयोग किया जा सके।
  3. मुख्य () फ़ंक्शन को कॉल करना जिसके अंदर कार्यक्रम का तर्क जोड़ा जाना चाहिए। मुख्य () फ़ंक्शन के शरीर के {निशान शुरू।
  4. वर्णों की एक स्ट्रिंग की घोषणा और इसे नाम नाम दिया गया। स्ट्रिंग मान को संग्रहीत करेगा जॉन। अतिरिक्त स्थान अशक्त चरित्र को संग्रहीत करेगा।
  5. कंसोल पर कुछ टेक्स्ट प्रिंट करना।
  6. कंसोल पर नामित नाम स्ट्रिंग के मूल्य को प्रिंट करना।
  7. यदि प्रोग्राम ठीक चलता है तो मुख्य () फ़ंक्शन को एक मान लौटाना चाहिए।
  8. मुख्य () फ़ंक्शन के शरीर का अंत।

यहाँ C ++ मानक स्ट्रिंग वर्ग का उपयोग करके एक और उदाहरण दिया गया है:

#include #include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}

आउटपुट:

यहाँ कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. हमारे कोड में iostream हेडर फ़ाइल शामिल है। यह हमें कंसोल से पढ़ने और लिखने की अनुमति देगा।
  2. हमारे कोड में मानक स्ट्रिंग वर्ग शामिल है।
  3. जिसमें स्टैड नेमस्पेस भी शामिल है ताकि बिना बुलाए अपनी कक्षाओं और कार्यों का उपयोग किया जा सके।
  4. मुख्य () फ़ंक्शन को कॉल करना जिसके अंदर कार्यक्रम का तर्क जोड़ा जाना चाहिए। मुख्य () फ़ंक्शन के शरीर के {निशान शुरू।
  5. एक स्ट्रिंग घोषित करना और इसे नाम का नाम देना। स्ट्रिंग मान को संग्रहीत करेगा9999।
  6. कंसोल पर कुछ पाठ के साथ स्ट्रिंग नाम के मूल्य को प्रिंट करना।
  7. यदि प्रोग्राम ठीक चलता है तो मुख्य () फ़ंक्शन को एक मान लौटाना चाहिए।
  8. मुख्य () फ़ंक्शन के शरीर का अंत।

स्ट्रिंग कार्य:

आप अक्सर तार में हेरफेर करना चाहेंगे। C ++ ऐसे कार्यों की एक विस्तृत श्रृंखला प्रदान करता है जिनका उपयोग आप इसके लिए कर सकते हैं। ये फ़ंक्शन CString वर्ग में परिभाषित किए गए हैं, इसलिए, हमें फ़ंक्शन का उपयोग करने के लिए इसे अपने कोड में शामिल करना होगा। आइए हम कुछ चर्चा करें:

अकड़नेवाला ()

यह स्ट्रिंग कॉपी फ़ंक्शन है। यह एक स्ट्रिंग को दूसरे स्ट्रिंग में कॉपी करता है।

वाक्य - विन्यास:

strcpy(string1, string2);

फ़ंक्शन के दो पैरामीटर, string1 और string2, स्ट्रिंग हैं। फ़ंक्शन स्ट्रिंग 1 में स्ट्रिंग string1 की प्रतिलिपि बनाएगा।

स्ट्रैकट ()

यह स्ट्रिंग समवर्ती कार्य है। यह तारों को समेटता है।

वाक्य - विन्यास:

strcat(string1, string2);

फ़ंक्शन के दो पैरामीटर, string1 और string2 को समाप्‍त किए जाने वाले तार हैं। उपरोक्त फ़ंक्शन स्ट्रिंग string1 के अंत में स्ट्रिंग string2 को सम्‍मिलित करेगा।

स्ट्रलेन ()

यह स्ट्रिंग लेंथ फंक्शन है। यह तर्क के रूप में इसे पारित स्ट्रिंग की लंबाई लौटाता है।

वाक्य - विन्यास:

strnlen(string1)

पैरामीटर string1 स्ट्रिंग का नाम है जिसकी लंबाई निर्धारित की जानी है। उपरोक्त फ़ंक्शन स्ट्रिंग string1 की लंबाई लौटाएगा।

स्ट्रैम्प ()

यह स्ट्रिंग तुलना फ़ंक्शन है। यह स्ट्रिंग तुलना के लिए उपयोग किया जाता है।

वाक्य - विन्यास:

strcmp(string1, string2);

उपरोक्त फ़ंक्शन 0 लौटाएगा यदि स्ट्रिंग string1 और string2 समान हैं, तो 0 से कम है अगर string1 string2 से अधिक है।

उदाहरण:

निम्न उदाहरण दर्शाता है कि उपरोक्त स्ट्रिंग फ़ंक्शंस का उपयोग कैसे करें:

#include #include using namespace std;int main() {char name1[10] = "Guru99";char name2[10] = "John";char name3[10];int len;strcpy(name3, name1);cout << "strcpy( name3, name1) : " << name3 << endl;strcat(name1, name2);cout << "strcat( name1, name2): " << name1 << endl;len = strlen(name1);cout << "strlen(name1) : " << len << endl;return 0;}

आउटपुट:

यहाँ कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. हमारे कोड में iostream हेडर फ़ाइल शामिल है। यह हमें कंसोल से पढ़ने और लिखने की अनुमति देगा।
  2. हमारे कोड में मानक CString वर्ग शामिल है।
  3. जिसमें स्टैड नेमस्पेस भी शामिल है ताकि बिना बुलाए अपनी कक्षाओं और कार्यों का उपयोग किया जा सके।
  4. मुख्य () फ़ंक्शन को कॉल करना जिसके अंदर कार्यक्रम का तर्क जोड़ा जाना चाहिए। मुख्य () फ़ंक्शन के शरीर के {निशान शुरू।
  5. 10 वर्णों की एक स्ट्रिंग की घोषणा करना और इसे नाम देना 1। स्ट्रिंग मान को संग्रहीत करेगा9999।
  6. 10 वर्णों की एक स्ट्रिंग घोषित करना और इसे नाम name2 देना। स्ट्रिंग मान को संग्रहीत करेगा जॉन।
  7. 10 वर्णों की एक स्ट्रिंग की घोषणा करना और इसे नाम name3 देना।
  8. एक पूर्णांक चर की घोषणा की जिसका नाम लेन है।
  9. स्ट्रिंग name1 को स्ट्रिंग name3 में कॉपी करना।
  10. कंसोल पर कुछ पाठ के साथ स्ट्रिंग नाम 1 के मूल्य को प्रिंट करना। इसे गुरु 99 को प्रिंट करना चाहिए।
  11. स्ट्रिंग नाम 1 के अंत में स्ट्रिंग्स नाम 2 को समेटना। नाम 1 का मान अब गुरु99 जॉन है।
  12. कंसोल पर कुछ पाठ के साथ स्ट्रिंग नाम 1 के मूल्य को प्रिंट करना। इसे गुरु99 जॉन प्रिंट करना चाहिए
  13. Name1 नाम की स्ट्रिंग की लंबाई निर्धारित करना और चर लेन की लंबाई का मान निर्दिष्ट करना।
  14. कंसोल पर कुछ अन्य पाठ के साथ लेन चर के मूल्य को प्रिंट करना।
  15. यदि प्रोग्राम ठीक चलता है तो मुख्य () फ़ंक्शन को एक मान लौटाना चाहिए।
  16. मुख्य () फ़ंक्शन के शरीर का अंत।

सारांश

  • एक स्ट्रिंग पात्रों का एक क्रम है।
  • स्ट्रिंग्स C ++ में मानक स्ट्रिंग क्लास से संबंधित हैं।
  • हम सी-स्टाइल कैरेक्टर स्ट्रिंग या स्टैंडर्ड स्ट्रिंग क्लास का उपयोग करके स्ट्रिंग्स की घोषणा कर सकते हैं।
  • Strcpy () फ़ंक्शन एक स्ट्रिंग को दूसरे में कॉपी करता है।
  • Strcat () फ़ंक्शन दो कार्यों को समाप्‍त करता है।
  • स्ट्रलेन () फ़ंक्शन किसी फ़ंक्शन की लंबाई लौटाता है।
  • Strcmp () फ़ंक्शन दो स्ट्रिंग्स की तुलना करता है।