c++ - हरण - मानक एल्गोरिथ्म




स्ट्रिंग के अंत की जांच के लिए एमएफसी सीएसटीरिंग के साथ बूस्ट स्ट्रिंग एल्गोरिथम का उपयोग करना (2)

आप अपने आप को परेशानी क्यों नहीं बचाते और सिर्फ सीएसटीटीआरटीटी :: राइट का इस्तेमाल करते हैं?

मुझे यह जांचने की आवश्यकता है कि क्या MFC में मेरे CString ऑब्जेक्ट एक विशिष्ट स्ट्रिंग के साथ समाप्त होता है।

मुझे पता है कि boost::algorithm के कई कार्य स्ट्रिंग हेरफेर के लिए हैं और यह हैडर boost/algorithm/string/predicate.hpp इसका इस्तेमाल उस उद्देश्य के लिए किया जा सकता है।

मैं आमतौर पर std::string साथ इस पुस्तकालय का उपयोग कर रहा std::string । क्या आप इस लाइब्रेरी को CString साथ उपयोग करने का एक सुविधाजनक तरीका जानते हैं?

मुझे पता है कि लाइब्रेरी सामान्य है जिसे अन्य स्ट्रिंग लाइब्रेरी के साथ भी इस्तेमाल किया जा सकता है, जो टेम्पलेट आर्गुमेंट्स के रूप में उपयोग किया जाता है, लेकिन यह सुविधा (और क्या संभव है) को CString पर लागू करने के लिए नहीं है।

क्या आप संभवत: उस स्थिति में मेरी सहायता कर सकते हैं?


स्ट्रिंग एल्गोरिदम लाइब्रेरी को बढ़ावा देने के अनुसार, "समर्थित स्ट्रिंग प्रकारों का सटीक विनिर्देश देखने के लिए डिज़ाइन अध्याय से परामर्श करें", जो अन्य बातों के बीच में कहते हैं, "स्ट्रिंग -प्रकार की पहली आवश्यकता यह है कि इसे बूस्ट। श्रेणी से उपयोग किया जा सकता है", और नोट नीचे एमएफसी / एटीएल कार्यान्वयन Shunsuke Sogame द्वारा लिखित जो आपको पुस्तकालयों को गठबंधन करने की अनुमति देनी चाहिए।

संपादित करें: चूंकि आप नीचे दिए गए टिप्पणियों में regex का उल्लेख करते हैं, ये आपको वास्तव में करने की आवश्यकता है (यूनिकोड बिल्ड मानिए):

CString inputString;
wcmatch matchGroups;
wregex yourRegex(L"^(.*)$"), regex::icase);
if (regex_search(static_cast<LPCWSTR>(inputString), matchGroups, yourRegex))
{
    CString firstCapture = matchGroups[1].str().c_str();
}

ध्यान दें कि हम अलग-अलग प्रकार के स्ट्रिंग प्रकार को कच्चे पॉइंटर्स को कैसे कम करते हैं ताकि उन्हें पुस्तकालयों के बीच पार कर सकें। अपने yourRegex को अपनी आवश्यकताओं के साथ बदलें, जिसमें आप केस को अनदेखा करते हैं या एंकर के बारे में स्पष्ट हैं या नहीं।







cstring