指定されたソースコードを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でプログラ