指定されたソースコードをC++で再配置します
文字列型変数、たとえば、ソースコードを格納し、文字列のサイズを計算して関数に渡すために使用されるstrが与えられます。タスクは、指定されたソースコードを再配置してから、結果を印刷することです。
このためのさまざまな入出力シナリオを見てみましょう-
入力 −文字列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; }
入力 −文字列str =
"#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)を入力し、文字列のサイズを計算して、variableという名前の長さに格納します。
-
データを関数Rearrangement(str、length)に渡します。
-
関数Rearrangement(arr、length)の内部
-
文字列型変数を宣言します。たとえば、str_1と整数型変数を、括弧を0、中括弧を0、カウントを0、iを0、jを0として宣言します。
-
do-WHILEを開始します。内部で、str [i]が'#'であるか、str[i]が'<'であるか、またはstr[i]が'>'であるか、またはstr[i]が';'であるかを確認します。 OR str [i] is'}' OR str [i] is'{' OR str [i] is'(' OR str [i] is')'次に、str[i]が'{'であるかどうかを確認してから、中かっこ1。
-
str[i]が'}'であるかどうかを確認してから、中括弧を1だけデクリメントします。
-
str[i]が'<'であり、括弧が0であるかどうかを確認してから、カウントを1ずつ増やします。
-
str[i]が'>'であり、括弧が0であるかどうかを確認してから、カウントを1デクリメントします。
-
IF str [i]が'('であることを確認してから、カウントを0に設定し、括弧を1つインクリメントします。
-
if str [i]が')'であることを確認してから、括弧を1だけデクリメントします。
-
括弧が0より大きい場合はチェックし、str_1をstr_1 +str[i]に設定します。それ以外の場合は、str [i]が')'であるかどうかを確認してから、str_1をstr_1 +str[i]に設定します。
-
それ以外の場合、str[i]は'{'またはstr[i]は'}'であり、str_1をstr_1 +'\ n'に、str_1をstr_1 + str [i]に、str_1をstr_1+'\n'に設定します。
-
それ以外の場合、カウントが0より大きい場合は、str_1をstr_1 +str[i]に設定します。
-
それ以外の場合、str [i]は'#'であり、str_1をstr_1 +'\ n'に設定し、str_1をstr_1 +str[i]に設定します。
-
それ以外の場合は、str_1をstr_1 + str [i]に設定し、str_1をstr_1+'\n'に設定します。
-
それ以外の場合は、str_1をstr_1 + str [i]に設定し、iを1ずつ増やします。
-
str_1をstr_1+'\0'に設定します。
-
ループFORをiから0まで開始し、iがstr_1文字列の長さより短くなるまで続けます。ループ内で、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; }
-
指定された数値の桁を合計するC++プログラム
これは、C++言語で桁の合計を計算する例です。 例 #include<iostream> using namespace std; int main() { int x, s = 0; cout << "Enter the number : "; cin >> x; while (x != 0) { s = s + x % 10; x = x / 10;
-
最高のC++コードフォーマッタ/ビューティファイア?
適切なインデントでコードまたはフォーマットを美化するC++コードフォーマッターまたはビューティファイアーツールは非常にたくさんあります。 C++コードフォーマッタ/ビューティファイアは次のようにリストされています- C++コードフォーマッタ/ビューティファイア 説明 アスタイル これはソースコードフォーマッタです。 C ++、Java、その他の言語で使用できます。最新バージョンは2.03で、2013年4月にリリースされました。 Clang-Format これはclangコンパイラと一緒のコマンドラインツールです。これはオープンソースツールであり、C ++、Pythonでプログラ