[C++] std :: स्ट्रिंग तुलना (जाँच करें कि क्या स्ट्रिंग दूसरे स्ट्रिंग के साथ शुरू होती है)


Answers

एक दृष्टिकोण जो मानक पुस्तकालय की भावना के साथ अधिक हो सकता है, वह अपने खुद के शुरू होने वाले एल्गोरिथ्म को परिभाषित करना होगा।

#include <algorithm>
using namespace std;


template<class TContainer>
bool begins_with(const TContainer& input, const TContainer& match)
{
    return input.size() >= match.size()
        && equal(match.begin(), match.end(), input.begin());
}

यह क्लाइंट कोड के लिए एक सरल अंतरफलक प्रदान करता है और सबसे मानक पुस्तकालय कंटेनरों के साथ संगत है।

Question

मुझे यह जाँचने की आवश्यकता है कि क्या std: string "xyz" से शुरू होता है? मैं पूरे स्ट्रिंग में खोज किए बिना या substr () के साथ अस्थायी स्ट्रिंग बनाने के बिना कैसे करूं?




मुझे लगता है कि मैं आपके प्रश्न को पूरी तरह से समझ नहीं पा रहा हूं। ऐसा लगता है जैसे कि यह तुच्छ होना चाहिए:

s[0]=='x' && s[1]=='y' && s[2]=='z'

यह केवल (सबसे अधिक) पहले तीन वर्णों को देखता है एक स्ट्रिंग के लिए सामान्यीकरण जो संकलन समय पर अज्ञात है, आपको ऊपर की ओर लूप के साथ बदलने की आवश्यकता होगी:

// look for t at the start of s
for (int i=0; i<s.length(); i++)
{
  if (s[i]!=t[i])
    return false;
}



Links