स्ट्रिंग को कैपिटलाइज करना

C++:
स्ट्रिंग को कैपिटलाइज करना

कैसे:

C++ में, आप किसी स्ट्रिंग को कैपिटलाइज़ कर सकते हैं तृतीय-पक्ष के लाइब्रेरी जोड़े बिना स्टैंडर्ड लाइब्रेरी का उपयोग करके। हालांकि, अधिक जटिल या विशिष्ट कैपिटलाइजेशन व्यवहारों के लिए, जैसे कि Boost बहुत सहायक हो सकती है। नीचे दोनों दृष्टिकोणों को दर्शाने वाले उदाहरण दिए गए हैं।

स्टैंडर्ड C++ लाइब्रेरी का उपयोग:

#include <iostream>
#include <cctype> // std::tolower और std::toupper के लिए
#include <string>

std::string capitalizeString(const std::string& input) {
    std::string result;
    bool capitalizeNext = true;

    for (char ch : input) {
        if (std::isspace(ch)) {
            capitalizeNext = true;
        } else if (capitalizeNext) {
            ch = std::toupper(ch);
            capitalizeNext = false;
        }
        result += ch;
    }

    return result;
}

int main() {
    std::string text = "hello world from c++";
    std::string capitalizedText = capitalizeString(text);
    std::cout << capitalizedText << std::endl; // आउटपुट: "Hello World From C++"
}

Boost लाइब्रेरी का उपयोग:

अधिक उन्नत स्ट्रिंग मैनिपुलेशन के लिए, जैसे कि स्थानीय-जागरूक कैपिटलाइजेशन, आप Boost String Algo लाइब्रेरी का उपयोग करना चाह सकते हैं।

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

#include <boost/algorithm/string.hpp>
#include <iostream>
#include <string>

int main() {
    std::string text = "hello world from c++";
    std::string capitalizedText = text;

    // प्रत्येक शब्द के पहले अक्षर को कैपिटलाइज़ करें
    boost::algorithm::to_lower(capitalizedText); // सुनिश्चित करें कि स्ट्रिंग लोअरकेस में है
    capitalizedText[0] = std::toupper(capitalizedText[0]); // पहले अक्षर को कैपिटलाइज़ करें

    for (std::size_t i = 1; i < capitalizedText.length(); ++i) {
        if (isspace(capitalizedText[i - 1])) { // एक स्पेस के बाद कैपिटलाइज़ करें
            capitalizedText[i] = std::toupper(capitalizedText[i]);
        }
    }

    std::cout << capitalizedText << std::endl; // आउटपुट: "Hello World From C++"
}

इस मामले में, Boost कुछ स्ट्रिंग मैनिपुलेशन कार्यों को सरल बनाता है लेकिन सच्चे कैपिटलाइजेशन के लिए एक अनुकूलित दृष्टिकोण की आवश्यकता होती है क्योंकि यह मुख्य रूप से परिवर्तन और केस परिवर्तन उपयोगिताओं की पेशकश करता है।