C++ または C# でこれに対するいくつかの回答が見つかりましたが、C の回答はありませんでした。
文字列の文字数を数える方法を知る必要があります。目標は、文字列内に閉じたブロック (中括弧'{'
, で囲まれている) があるかどうかを判断することです。'}'
今、私は次のものを持っています:
int closedBlock(char* value) {
int open = 0;
int i;
for (i = 0; i < strlen(value); i++) {
if (!strcmp("{", value[i])) {
open++;
} else if (!strcmp("}", value[i])) {
open--;
}
}
return !open;
}
if
しかし、最初のチェックの後にクラッシュします。なぜこれがうまくいかないのか、私にはよくわかりません。悪いポインタと関係があると思いますが(Cでは常に問題になるようです)、それを理解することはできません。作業コードに加えて、私のコードが悪い理由の説明は非常に役立ちます。
ありがとう。
ノート
'{'
これは、 の数が の数と等しいことを確認するだけで'}'
あり、適切に閉じられたブロックがあることを確認するものではないことを認識しています。この問題を解決したら、その問題を解決します。