कभी-कभी, कम्प्यूटेशनल लिंग्विस्टिक्स, मशीन लर्निंग, और डेटा विश्लेषण जैसे क्षेत्रों में भारी मात्रा में टेक्स्ट डेटा को प्रबंधित करने की आवश्यकता होती है। इसलिए, C++ में, स्ट्रिंग्स और सूचियों का उपयोग आमतौर पर इसके लिए किया जाता है। शायद, हमें किसी स्ट्रिंग या कैरेक्टर्स की सूची से किसी कैरेक्टर की प्रारंभिक उपस्थिति को हटाने की आवश्यकता होती है। इस लेख में, हम C++ में स्ट्रिंग से किसी कैरेक्टर के पहले उदाहरणों को हटाने के वैकल्पिक तरीकों को देखेंगे। फ़ंक्शन स्ट्रिंग की सामग्री के पहले कैरेक्टर को हटा देता है, जिसके परिणामस्वरूप एक छोटी स्ट्रिंग होती है।
उदाहरण 1: C++ में erase() मेथड का उपयोग करके स्ट्रिंग से पहला कैरेक्टर हटाएं
string::erase फ़ंक्शन स्ट्रिंग से कैरेक्टर्स को इन-प्लेस हटाने के लिए अनुशंसित मेथड है। निम्न C++ प्रोग्राम में स्कोप ओवरलोड प्रदर्शित किया गया है:
आइए प्रोग्राम के main फ़ंक्शन से शुरू करें। main फ़ंक्शन पैरेंथेसिस के अंदर, हमने स्ट्रिंग चर को प्रस्तुत करने के लिए एक मानक क्लास टेम्पलेट परिभाषित किया है जिसे "StrValue" कहा जाता है। स्ट्रिंग चर "StrValue" शब्दों की स्ट्रिंग के साथ इनिशियलाइज़ किया गया है। हमारे पास एक मानक cout स्टेटमेंट है जो स्ट्रिंग को प्रिंट करेगा जैसा कि यह इनिशियलाइज़ है। फिर, हमने इस स्ट्रिंग, "StrValue" पर erase मेथड का प्रदर्शन किया।
erase मेथड के भीतर, हमने 0 और 1 को आर्गुमेंट के रूप में पास किया है। मान "0" स्ट्रिंग "StrValue" में पहले कैरेक्टर का इंडेक्स है, और मान "1" स्ट्रिंग में रखा गया पहला कैरेक्टर है। निर्दिष्ट स्थान के बाद, erase मेथड स्ट्रिंग से प्रदान की गई लंबाई के कैरेक्टर को हटा देगा। अंत में, हमारे पास पहले कैरेक्टर को हटाने के बाद स्ट्रिंग प्रिंट करने के लिए एक प्रिंट स्टेटमेंट है।
#include <iostream>
#include <string>
int main()
{
std::string StrValue = "Happy Me";
std::cout << "String Before:" << StrValue << std::endl;
StrValue.erase(0, 1);
std::cout << "String After:" << StrValue << std::endl;
return 0;
}
निम्न आउटपुट निर्दिष्ट स्ट्रिंग पर erase मेथड के कार्य को दिखाता है। जैसा कि आप देख सकते हैं, स्ट्रिंग का प्रारंभिक कैरेक्टर मिटा दिया गया है:
उदाहरण 2: C++ में इटरेटर मेथड का उपयोग करके स्ट्रिंग से पहला कैरेक्टर हटाएं
erase() मेथड का एक और ओवरलोडेड विकल्प इटरेटर को मिटा देता है। यह एक इटरेटर को पैरामीटर के रूप में स्वीकार करता है और इसके द्वारा निर्दिष्ट कैरेक्टर को मिटा देता है। स्ट्रिंग के पहले कैरेक्टर की ओर इंगित करने वाले इटरेटर को पास करके, हम स्ट्रिंग के पहले कैरेक्टर को मिटा सकते हैं।
हमने इस निम्न प्रोग्राम के main फ़ंक्शन में erase मेथड का उपयोग किया है। main फ़ंक्शन में स्ट्रिंग का एक मानक फॉर्मेट परिभाषित किया गया है। स्ट्रिंग चर "StringIs" के रूप में बनाया गया है और कैरेक्टर्स की स्ट्रिंग्स के साथ इनिशियलाइज़ किया गया है। पहले, हमने erase इटरेटर मेथड लागू करने से पहले स्ट्रिंग प्रिंट की है।
फिर, हमने पिछले स्ट्रिंग के erase मेथड को लागू किया है। erase मेथड में "StrValue" स्ट्रिंग के लिए begin इटरेटर है और स्ट्रिंग के पहले कैरेक्टर की ओर इंगित करने वाले इटरेटर को वापस करने के लिए उपयोग किया जाता है। जब पहला कैरेक्टर वापस किया जाता है, तो erase मेथड स्ट्रिंग से कैरेक्टर को हटा देगा। उसके बाद, स्ट्रिंग प्रिंट होगी, जिसमें पहला कैरेक्टर हटा दिया गया है।
#include <iostream>
#include <string>
int main()
{
std::string StringIs = "Programming Example";
std::cout << "String Before: " << StringIs << std::endl;
StringIs.erase(StringIs.begin());
std::cout << "String After: " << StringIs << std::endl;
return 0;
}
शेल ने आउटपुट प्रदर्शित किया है, जो erase इटरेटर मेथड से पहले स्ट्रिंग और स्ट्रिंग से पहले कैरेक्टर हटाने के बाद दिखाता है।
उदाहरण 3: C++ में खाली स्ट्रिंग की जांच करके स्ट्रिंग से पहला कैरेक्टर हटाएं
string::erase फ़ंक्शन का उपयोग करने से पहले, सुनिश्चित करें कि कोई खाली स्ट्रिंग नहीं है। यदि इनपुट सीक्वेंस खाली है, तो प्रोग्राम std::length_error एक्सेप्शन थ्रो करता है।
प्रोग्राम में main फ़ंक्शन शामिल है जहां स्ट्रिंग चर "MyStr" घोषित किया गया है। स्ट्रिंग को घोषित करते समय स्ट्रिंग कैरेक्टर्स के साथ भी इनिशियलाइज़ किया गया है। स्ट्रिंग मान शेल पर प्रिंट किया जाएगा। उसके बाद, हमारे पास एक if स्टेटमेंट है जहां दी गई स्ट्रिंग पर कंडीशन लागू की जाती है।
हमने if कंडीशन के अंदर empty मेथड को कॉल किया है ताकि यह जांचा जा सके कि स्ट्रिंग खाली नहीं होनी चाहिए। फिर, स्ट्रिंग पर erase इटरेटर मेथड का उपयोग किया जाता है और निर्दिष्ट स्ट्रिंग से पहला कैरेक्टर हटा देता है। स्ट्रिंग को शेल स्क्रीन पर प्रिंट किया जाएगा जिसमें स्ट्रिंग से पहला कैरेक्टर हटा दिया गया है।
#include <iostream>
#include <string>
int main()
{
std::string MyStr = "rainbow";
std::cout << "String Before:" << MyStr << std::endl;
if (!MyStr.empty()) {
MyStr.erase(MyStr.begin());
}
std::cout << "String Now:" << MyStr << std::endl;
return 0;
}
हमें निम्न आउटपुट स्ट्रिंग्स मिली हैं।
उदाहरण 4: C++ में मिलान कैरेक्टर के साथ पहला कैरेक्टर हटाएं
अब, हमारे पास एक उदाहरण है जहां यदि प्रारंभिक कैरेक्टर किसी विशिष्ट कैरेक्टर से मेल खाता है तो उसे हटाने के लिए, निम्न सिंटैक्स का उपयोग करते हुए:
निम्न प्रोग्राम के main में स्ट्रिंग चर को स्ट्रिंग मान के साथ इनिशियलाइज़ किया गया है और "Name" नाम असाइन किया गया है। हमने cout कमांड के साथ स्ट्रिंग प्रदर्शित की है। फिर, हमने "ch" नामक एक और चर परिभाषित किया है जिसका char डेटा प्रकार है। char चर "ch" को पिछली स्ट्रिंग के पहले कैरेक्टर से मेल खाने वाला कैरेक्टर "k" असाइन किया गया है।
फिर, if स्टेटमेंट का उपयोग उस कंडीशन की जांच के लिए किया जाता है कि कैरेक्टर मान "k" स्ट्रिंग के पहले कैरेक्टर मान से मेल खाता है। हमारे पास front() फ़ंक्शन है, जिसका उपयोग स्ट्रिंग के संदर्भ में पहला कैरेक्टर प्राप्त करने के लिए किया जाता है। फिर स्ट्रिंग के प्रारंभिक कैरेक्टर को erase इटरेटर का उपयोग करके समाप्त किया जाएगा।
#include <iostream>
#include <string>
int main()
{
std::string Name = "Kalsoom";
std::cout << "Name Before: " << Name << std::endl;
char ch = 'K';
if (Name.front() == ch) {
Name.erase(Name.begin());
}
std::cout << "Name Now: " << Name << std::endl;
return 0;
}
जैसा कि आप देख सकते हैं, स्ट्रिंग से हटाया गया पहला कैरेक्टर इस प्रकार है:
उदाहरण 5: C++ में substr() मेथड का उपयोग करके स्ट्रिंग से पहला कैरेक्टर हटाएं
स्ट्रिंग को string::erase मेथड का उपयोग करके इन-प्लेस संशोधित किया जाता है। string::substr फ़ंक्शन का उपयोग करके, आप अंतिम कैरेक्टर के बिना स्ट्रिंग की एक प्रति प्राप्त कर सकते हैं।
हमने if कंडीशन ब्लॉक में स्ट्रिंग "MyString" पर substr फ़ंक्शन का उपयोग किया है। substr फ़ंक्शन को पहले कैरेक्टर पोजीशन और स्ट्रिंग की लंबाई -1 के साथ पास किया गया है। यह कॉलर स्ट्रिंग ऑब्जेक्ट से एक नई बनी स्ट्रिंग लौटाता है जिसमें निर्दिष्ट कैरेक्टर्स होते हैं।
#include <iostream>
#include <string>
int main()
{
std::string MyString = "Bringing";
std::cout << "Original String: "<< MyString << std::endl;
std::string n;
if (!MyString.empty()) {
n = MyString.substr(1, MyString.size() - 1);
}
std::cout << "Changed String: " << n << std::endl;
return 0;
}
substr मेथड ने स्ट्रिंग से कैरेक्टर की पहली घटना को हटा दिया, जैसा कि निम्न शेल में दिखाया गया है:
निष्कर्ष
C++ में, हमने स्ट्रिंग से प्रारंभिक कैरेक्टर को हटाने के वैकल्पिक तरीके सीखे। ये तरीके समान आउटपुट लौटाते हैं लेकिन C++ प्रोग्राम में अलग-अलग तरीके से लागू होते हैं। ये स्ट्रिंग से कैरेक्टर के प्रारंभिक उदाहरणों को हटाने के लिए कुशल C++ तरीके हैं। हम आशा करते हैं कि ये तरीके आपके लिए फायदेमंद होंगे।