2つの文字列を比較するときは、関数strcmp()を使用します。2つの文字列が等しい場合、0が返されます。
文字列を比較するときは、使用しないでください
if(A==b)
これは間違いを犯す可能性があります
たとえば、draft.cppを書くとき
int queen::Level()
{
if( (18<=age && age<=25) &&
(165<=height && height<=178) &&
(sc=="火辣") &&
(yz=="漂亮"))
{
printf("女王\n"); return 1;}
}
私が書いた額面と体型は、同一記号を使用してそれらが等しいかどうかを判断しますが、実際には、額面(yz)と体(sc)をこのように定義したため、これは間違っています。
char yz[31];
char sc[31];
yzとscにそれぞれ値を割り当てる場合
sc="火辣";
yz="漂亮";
ホットでプリティはこれら2つの変数の最初の4バイトを占め、残りのスペースは0です。したがって、2つの文字列が同じであるかどうかをID記号で判断するのは誤りです。
gdbデバッグで
は、scの値を出力するのは次のようになります。初期化がないため、ガベージ値が表示されます。