私は1と0でいっぱいのchar配列を持っています。 1の後に0がある場合、それらは場所を切り替える必要があります。サイクルはk回繰り返されます。私はこのコードを書いたが、文字列を印刷しようとすると、何も印刷されないか、または単に印刷される。なぜこれが行われ、なぜ機能しないのか?文字配列内の文字の置換C++
#include <iostream>
using namespace std;
int const limit = 100000;
int main() {
int k;
char s[limit];
cin >> k;
cin >> s;
for (int i = 0; i < k; i++) {
for (int j = 0; j < strlen(s); j++)
if (s[j + 1] == '0' && s[j] == '1') {
s[j + 1] = '1';
s[j] = 0;
}
}
}
cout << s;
return 0;
}
'のS [j] = 0;'のS [j] = '0' でなければなりません。 '! –
また、19行目の '}'のために、このコードはコンパイルされません – mpiatek
Kenのコメントについてより明確にするために、値0(またはNUL)は文字列を効果的に '終了'します。 – polarysekt