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



1 Answers

मानक लाइब्रेरी की भावना को ध्यान में रखते हुए एक दृष्टिकोण जो आपके स्वयं के start_with एल्गोरिदम को परिभाषित करना होगा।

#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: स्ट्रिंग "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;
}



Related