Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में स्ट्रिंग को दिए गए संख्या में कंकेटनेट करना


समस्या विवरण

एक स्ट्रिंग को दी गई संख्या में कंकेटनेट करने का प्रोग्राम स्ट्रिंग कंकेटनेशन मेथड को n बार चलाएगा, n के मान के आधार पर। परिणाम वह स्ट्रिंग होगी जो कई बार दोहराई गई हो।

उदाहरण

दिया गया स्ट्रिंग: "I love Tutorials point"
n = 5

आउटपुट

I love Tutorials pointI love Tutorials pointI love Tutorials pointI love Tutorials point I love Tutorials point

एल्गोरिदम

concatString(str, n):
    result = str
    for i = 1 to n-1:
        result = result + str
    return result

उदाहरण 1: लूप का उपयोग करके

#include <iostream>
#include <string>
using namespace std;

string repeat(string s, int n) {
    string result = s;
    for (int i = 1; i < n; i++) {
        result += s;  // स्ट्रिंग्स कंकेटनेट करना
    }
    return result;
}

int main() {
    string s = "I love tutorials point";
    int n = 4;

    string result = repeat(s, n);
    cout << result << endl;
    return 0;
}

आउटपुट

I love tutorials pointI love tutorials pointI love tutorials pointI love tutorials point

उदाहरण 2: main() में सीधे

#include <iostream>
#include <string>
using namespace std;

int main() {
    string myStr, result = "";
    int n;

    cout << "Enter String: ";
    cin >> myStr;
    cout << "Enter number of times to concatenate: ";
    cin >> n;

    for(int i = 0; i < n; i++) {
        result += myStr;
    }

    cout << "Result: " << result;
    return 0;
}

आउटपुट

Enter String: Hello
Enter number of times to concatenate: 5
Result: HelloHelloHelloHelloHello

बेहतर दृष्टिकोण: string::append या रिजर्व का उपयोग

string repeatEfficient(string s, int n) {
    string result;
    result.reserve(s.length() * n);  // मेमोरी पूर्व-आरक्षित करें
    for (int i = 0; i < n; i++) {
        result += s;
    }
    return result;
}

समय जटिलता

  • बेसिक लूप: O(n × m) जहां m स्ट्रिंग की लंबाई है
  • reserve() के साथ: O(n × m) लेकिन कम रिकैलोकेशन

नोट

C++20 में std::string::repeat() का प्रस्ताव है लेकिन अभी तक स्टैंडर्ड में नहीं है। बड़े n के लिए, reserve() का उपयोग करके प्रदर्शन में सुधार करें।

  1. - C++ प्रोग्राम दी गई संख्या में स्ट्रिंग को जोड़ने (Concatenate) के लिए

    यहां हम देखेंगे कि स्ट्रिंग को n बार कैसे जोड़ा जा सकता है। n का मान उपयोगकर्ता द्वारा दिया जाता है। यह समस्या बहुत सरल है। C++ में हम कन्कैटनेशन के लिए + ऑपरेटर का उपयोग कर सकते हैं। आइडिया प्राप्त करने के लिए कोड देखें। एल्गोरिदम concatStrNTimes(str, n) begin res := empty string for i i

  1. - C++ प्रोग्राम: दी गई स्ट्रिंग के क्रमचय (Permutations) की संख्या ज्ञात करना

    हम एक स्ट्रिंग के कैरेक्टर्स को अलग-अलग क्रम में व्यवस्थित कर सकते हैं। यहां हम देखेंगे कि दी गई स्ट्रिंग से कितने क्रमचय बनाए जा सकते हैं। हम जानते हैं कि यदि एक स्ट्रिंग abc है। इसमें तीन कैरेक्टर्स हैं; हम उन्हें 3! = 6 अलग-अलग तरीकों से व्यवस्थित कर सकते हैं। इसलिए n कैरेक्टर्स वाली स्ट्रिंग क

  1. - C++ में std::string और int को जोड़ना

    इस प्रोग्राम में हम देखेंगे कि C++ में स्ट्रिंग और इंटीजर टाइप डेटा को कैसे जोड़ा जाए। स्ट्रिंग और इंटीजर डेटा को जोड़ने के लिए, हमें पहले इंटीजर को स्ट्रिंग में बदलना होगा। इसे बदलने के लिए हम stringstream का उपयोग कर रहे हैं। यह कुछ सुविधाएं प्रदान करता है। यह नंबर या स्ट्रिंग लेता है फिर उसे स्ट