重複の可能性:
「if」ステートメントで文字列を比較する方法は?
私は C を使用しています。2 つの文字列を equals == 演算子と比較すると、std 出力が同じように見えても一致しません。
整数の配列として開始された配列の 1 つを考えてみましょう。これを、各整数に「0」を追加して別の char * 配列にロードすることで文字に変換しました。
したがって、両方の配列は文字と同じ標準出力を含む文字配列ですが、「if」選択構造はそれらに一致するように機能していません。各配列を参照するために char * 名を使用しています。
必要に応じて、このコード全体を投稿できます。比較を含むループは次のとおりです。
i=0;
pipx = (char*)malloc(sizeof(char));
sec = (char*)malloc(sizeof(char));
//for (b = 0; b < lengthx; b++){
//reallocate a second array
pipx = (char*)realloc(sec, ((i+1)*sizeof(char)) );
sec = pipx;
//add bitstr[b] to second array
sec[i] = (char)bitstr[b] + '0';
i++;
for (m = 0; m < k; m++){
printf("codex[m].bitx:%s", codex[m].bitx);
printf("sec:%s|\n", sec);
printf("seclen: %i", (int)strlen(sec));
printf("codex[m].bitxlen: %i\n", (int)strlen(codex[m].bitx));
if ((char*)sec == (char*)codex[m].bitx){
printf("This should output: %s", sec);
printf("Here ---------------------- Here");
//allocate the second array to zero
i=0;
sec = (char*)malloc(0);
}
}
}