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

दिए गए स्रोत कोड को C++ में पुनर्व्यवस्थित करें

हमें एक स्ट्रिंग प्रकार चर दिया जाता है, मान लीजिए, str जिसका उपयोग स्रोत कोड को संग्रहीत करने के लिए किया जाएगा, फिर स्ट्रिंग के आकार की गणना करें और इसे फ़ंक्शन में पास करें। कार्य दिए गए स्रोत कोड को पुनर्व्यवस्थित करना और फिर परिणाम को प्रिंट करना है।

आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -

इनपुट -स्ट्रिंग स्ट्र =

"#include <bits/stdc++.h>
using namespace std;
int main()"
   "{ int sum, first, second; sum = first + second; printf(\"%d\", c);"
   " return 0;}"

आउटपुट -

#include <bits/stdc++.h>
using namespace std;
int main(){
   int sum, first, second;
   sum = first + second;
   printf("%d", c);
   return 0;
}

इनपुट -स्ट्रिंग स्ट्र =

"#include<bits/stdc++.h>
 using namespace std;
int main()"
   "{ printf(\"%d\", c);"
   " return 0;}"

आउटपुट -

#include<bits/stdc++.h>
using namespace std;
int main(){
   printf("%d", c);
   return 0;
}

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • स्ट्रिंग प्रकार का एक वेरिएबल इनपुट करें, मान लें, str और स्ट्रिंग के आकार की गणना करें और इसे वैरिएबल नामक लंबाई में स्टोर करें।

  • डेटा को फ़ंक्शन पुनर्व्यवस्था (str, लंबाई) में पास करें।

  • समारोह के अंदर पुनर्व्यवस्था (गिरफ्तारी, लंबाई)

    • एक स्ट्रिंग प्रकार चर घोषित करें, मान लें, str_1 और पूर्णांक प्रकार चर को कोष्ठक के रूप में 0, ब्रेसिज़ से 0, 0 तक गिनें, i से 0 और j से 0.

    • प्रारंभ करें-जबकि। अंदर, जांचें कि क्या str [i] '#' है या str [i] '<' है या str [i] '>' है या str [i] है ';' या str[i] है '}' या str[i] है '{' या str[i] is '(' OR str[i] is ')' है, तो जांचें कि क्या str[i] '{' है, फिर वृद्धि करें 1.

      . द्वारा ब्रेसिज़
    • जांचें कि IF str[i] '}' है तो ब्रेसेस को 1 से घटाएं।

    • जांचें कि क्या str[i] '<' है और कोष्ठक 0 है तो गिनती को 1 से बढ़ाएं।

    • जांचें कि क्या str[i] '>' है और कोष्ठक 0 है तो गिनती को 1 से घटाएं।

    • जांचें कि क्या str[i] '(' है, फिर गिनती को 0 पर सेट करें और कोष्ठक को 1 से बढ़ाएँ।

    • जांचें कि क्या str[i] is ')' है, फिर कोष्ठक को 1 से घटाएं।

    • जांचें कि क्या कोष्ठक 0 से बड़ा है, फिर str_1 को str_1 + str[i] पर सेट करें। ELSE, जांचें कि क्या str[i] is ')' है, फिर str_1 को str_1 + str[i] पर सेट करें।

    • ELSE IF, str[i] '{' या str[i] is '}' है तो str_1 को str_1 + '\n', str_1 से str_1 + str[i] और str_1 से str_1 + '\n' पर सेट करें।

    • ELSE IF, गिनती 0 से अधिक है तो str_1 को str_1 + str[i] पर सेट करें।

    • ELSE IF, str[i] '#' है तो str_1 को str_1 + '\n' और str_1 को str_1 + str[i] पर सेट करें।

    • ELSE, str_1 को str_1 + str[i] और str_1 को str_1 + '\n' पर सेट करें।

    • ELSE, str_1 को str_1 + str[i] पर सेट करें और i को 1 से बढ़ाएँ।

    • str_1 को str_1 + '\0' पर सेट करें।

    • एक str_1 स्ट्रिंग की लंबाई से कम होने तक i से 0 तक के लिए लूप प्रारंभ करें। लूप के अंदर, str_1[i] प्रिंट करें।

  • परिणाम प्रिंट करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
void Rearrangement(string str, int length){
   string str_1;
   int Parenthesis = 0;
   int Braces = 0;
   int count = 0;
   int i = 0;
   int j = 0;
   do{
      if(str[i] == '#' || str[i] == '<' || str[i] == '>' || str[i] == ';' || str[i] == '}' || str[i] == '{'   || str[i] == '(' || str[i] == ')'){
         if(str[i] == '{'){
            Braces++;
         }
         if(str[i] == '}'){
            Braces--;
         }
         if(str[i] == '<' && Parenthesis == 0){
            count++;
         }
         if(str[i] == '>' && Parenthesis == 0){
            count--;
         }
         if(str[i] == '('){
            count = 0;
            Parenthesis++;
         }
         if(str[i] == ')'){
            Parenthesis--;
         }
         if(Parenthesis > 0){
            str_1 = str_1 + str[i];
         }
         else{
            if(str[i] == ')'){
               str_1 = str_1 + str[i];
            }
            else if(str[i] == '{' || str[i] == '}'){
               str_1 = str_1 + '\n';
               str_1 = str_1 + str[i];
               str_1 = str_1 + '\n';
            }
            else if(count > 0){
               str_1 = str_1 + str[i];
            }
            else if(str[i] == '#'){
               str_1 = str_1 + '\n';
               str_1 = str_1 + str[i];
            }
            else{
               str_1 = str_1 + str[i];
               str_1 = str_1 + '\n';
            }
         }
      }
      else{
            str_1 = str_1 + str[i];
         }
         i++;
   }while (i < length);
    str_1 = str_1 + '\0';
    for(i = 0; i < str_1.length(); i++){
       cout<< str_1[i];
    }
}
int main(){
      string str = "#include <bits/stdc++.h>using namespace std;int main()"
      "{ int sum, first, second; sum = first + second; printf(\"%d\", c);"
      " return 0;}";
      int length = str.length();
      Rearrangement(str, length);
      return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

#include <bits/stdc++.h>
using namespace std;
int main(){
   int sum, first, second;
   sum = first + second;
   printf("%d", c);
   return 0;
}

  1. ज्ञात कीजिए कि C++ में दिए गए अभाज्य से nCr विभाज्य है या नहीं

    मान लीजिए कि तीन चर N, R और P हैं। N और R का उपयोग N प्राप्त करने के लिए किया जाता है सीआर और P एक अभाज्य है। हमें यह पता लगाना है कि क्या N सीआर P से विभाज्य है। मान लीजिए हमारे पास कुछ संख्याएँ N =7, R =2 और P =3 हैं, तो 7 सी2 =21, यह 3 से विभाज्य है, इसलिए आउटपुट सत्य होगा। हम जानते हैं कि N सीआ

  1. सी ++ प्रोग्राम किसी दिए गए नंबर के अंकों का योग करने के लिए

    C++ भाषा में अंकों के योग की गणना करने के लिए यहां एक उदाहरण दिया गया है, उदाहरण #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {    

  1. सर्वश्रेष्ठ सी ++ कोड फॉर्मेटर/ब्यूटीफायर?

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