私は文字配列としてC言語の文字列を扱っています。私はforループに値を動的に渡すことを保証しようとしています。C For Loop Not Working?
次のコードは動作しますが、全く問題:実際には
for (int i = -6; i < 11; i++) {
int test = OverlapStrength(fragments[1], fragments[2], i, 0);
printf("%d\n", test);
}
、このコードは、あまりにも、機能しません:
for (int i = -strlen(fragments[2]) + 1; i < 11; i++) {
int test = OverlapStrength(fragments[1], fragments[2], i, 0);
printf("%d\n", test);
}
しかし、いくつかの理由で、このコードは何も印刷されません。
for (int i = -strlen(fragments[2]) + 1; i < strlen(fragments[1]); i++) {
int test = OverlapStrength(fragments[1], fragments[2], i, 0);
printf("%d\n", test);
}
-strlen(fragments[2]) + 1
とstrlen(fragments[1])
の両方の値を確認していますeループになり、それぞれ-6と11にチェックアウトされます。明らかにループは、それらの値を直接場所に置くと機能しますが、私がstrlen
の計算で2番目のものを置き換えると、それが壊れてしまい、私の人生の理由を理解できません。助けて?私はそれらを変更することはできませんので
編集
OverlapStrengthは定数としてその引数を取るので、私は、私が行くように、私は破片を変更していないよかなり確信しています。ここではメソッドの宣言です:フラグメントの
int OverlapStrength(const char one[], const char two[], int startOne, int startTwo)
内容は重要ではありませんが、彼らは単に私が重複断片から戻って一緒につなぎしようとしている文字列をしています。私はすでに私のフラグメントがすべて正しく出ていることをチェックしており、このループを宣言する以外では長さが正しく計算されていることを確認しています。
が '' strlenを(断片[1]) 'の値を変更OverlapStrength'んに
strlen
をキャストすることができますか? –OverlapStrengthの引数は定数として宣言されているため、変更することはできません。そのコードを表示する元の投稿を編集します。 – Chiubaka