একটি স্ট্রিং ভেরিয়েবলে সোর্স কোড সংরক্ষণ করে, তার আকার বের করে ফাংশনে পাস করলে সোর্স কোডটি সুন্দরভাবে রি-অ্যারেঞ্জ হয়ে প্রিন্ট হবে।
উদাহরণ
ইনপুট − string str = "#include
আউটপুট − সুন্দর ফরম্যাট করা কোড।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
স্ট্রিং
strও এর দৈর্ঘ্যlengthনিন।Rearrangement(str, length)ফাংশন কল করুন।ফাংশনে
Parenthesis, Braces, count, i, jভেরিয়েবল ব্যবহার করে ব্রেস, প্যারেনথেসিস, হ্যাশ ইত্যাদি ট্র্যাক করে কোড ফরম্যাট করা হয়।ডু-হয়াইল লুপে প্রতিটি ক্যারাক্টার প্রসেস করে নাইয়ে লাইন, ইন্ডেন্টেশন যোগ করা হয়।
শেষে ফরম্যাট করা স্ট্রিং প্রিন্ট করুন।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
void Rearrangement(string str, int length){
string str_1;
int Parenthesis = 0, Braces = 0, count = 0, i = 0, 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 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;
}
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:
#includeusing namespace std; int main() { int sum, first, second; sum = first + second; printf("%d", c); return 0; }